最近blogは前日の夕方までに書くようにしています。書いているときは何度も「下書きとして保存」をクリックしています。ところが先日ついうっかり「公開」を間違って押してしましました。
パブリサイズ共有をしているので、「公開」を押したとたんにいくつものSNSに投稿が通知されてしまいます…超焦りました。その上、一度公開したものを再度パブリサイズ共有を有効にするには別の記事にコピーして元の記事はお蔵入りにしないと共有で通知してくれません(新規の時1回だけ行われる模様)。
なので、「誤って公開を押さないように」なにかしてみたいと思いました。
誤って公開を押して公開されないためにはどうする?
誤って公開を押して公開されないためにはどうすればいいか、と考えてみました。
・そもそも公開ボタンを表示しない–隠れていて▼とか押すとでてくるとか
・公開ボタンを押したときアラートが出て「ほんとに、ほんとに公開?大丈夫?」と出る。OKを押したら公開される
公開ボタンを表示しない、っていうのが安全な気がします。しかし、これは管理画面のカスタマイズになるので、アップデートされたときも影響がないように、という方法を考えるのにはちょっと時間がかかりそうです(あとでやってみたいなぁ)。
ということで、アラートが出るという方法をやってみます。
公開ボタンを押したとき「ほんとに、ほんとに公開?大丈夫?」と確認を出す
やはり、同じような悩みがあるようでググってみたらたくさんの例がありました。その中で、
[WordPress] 間違って記事を公開しないように、「公開」ボタンを押した後に確認アラートを入れる
こちらを参考にさせていただきました。
「公開」ボタンが青く強調されているからいけません。例えるならば、剥き出しの非常ベルがそこにある状態です。誰でも押したくなる、よくない設計だと思います。
「剥き出しの非常ベル」、、、ですよね~
functions.phpに記述を追加してみる
参考にさせてもらったページのコードを丸写しして(^_^;、メッセージだけ入れ替えました
function publish_confirm_admin_print_scripts() {
echo <<< EOM
<script type="text/javascript">
<!--
window.onload = function() {
var id = document.getElementById('publish');
if (id.value.indexOf("公開", 0) != -1) {
id.onclick = publish_confirm;
}
}
function publish_confirm() {
if (window.confirm("ほんとに、ほんとに公開?大丈夫?")) {
return true;
} else {
var elements = document.getElementsByTagName('span');
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
if (element.className.indexOf("spinner", 0) != -1) {
element.classList.remove('spinner');
}
}
document.getElementById('publish').classList.remove('button-primary-disabled');
document.getElementById('save-post').classList.remove('button-disabled');
return false;
}
}
// -->
</script>
EOM;
}
// 公開する前にアラートを表示する
add_action('admin_print_scripts', 'publish_confirm_admin_print_scripts');
これで公開しようとすると
と表示されるので、うっかりOKを押さない限りは間違って公開されることもなくなったかと思います。
それでも自分を信じられないあなたへ…
ここまでやって「それでも自分が信じられない」というあなた…。私にはわかります。。「そういう良くやる動きって何も考えずにOK押しちゃうことあるんだよね…」っていうことが、、私にはあるのです。
ということでそういう人(私のような)向けにもちょっとしつこくしてみたいと思います。ドジっこスペシャルバージョンです。
公開をクリックしたとき、
ほんとに、ほんとに公開?大丈夫? というメッセージの下に入力ボックスを表示します。
ここに 大丈夫 と入力して OK を押さない限り公開しないようにしてみます。
先ほどfunctions.phpに追加した
if (window.confirm("ほんとに、ほんとに公開?大丈夫?")) {
の行を
answer = window.prompt("ほんとに、ほんとに公開?大丈夫?", "");
if (answer == '大丈夫') {
に置き換えるだけです。大丈夫 と入力して OKを押すと公開されますが、それ以外を入力してOKを押しても何も起こりません。正解(大丈夫)を入れる事が出来るか、キャンセルを押すかしか処理が行えなくなります。
これで 大丈夫 と入力してOKを押さない限りは公開されませんので安心です。。。とはいえ…面倒くさいので、よほどのドジな人以外は確認メッセージを出すだけで大丈夫ですよね。
質問や答えは自分の好きなように入れ替えてみてください。






コメント
コメント一覧 (1件)
[…] 間違って公開を押してもすぐに公開されないようにする-ドジっこスペシャル付き | RYUS blog […]