wordpressの記事投稿時に確認ダイアログを出す

2011年11月21日

公開ボタンをうっかり押すと公開されてしまう

当たり前の話といえばそれまでだけど、公開ボタンをうっかり押して公開されてしまケースがある。ちょっとしたブログなら問題ないのかもしれないけれど、公式サイトなんかでは数分間だけでも公開状態になってしまうと色々とややこしいことになりやすい。

うっかりしなければいい、という簡単な話でもあるけれど、確認ダイアログを1つ挟めば、よりミスしにくいよねーということで入れてみた。

決め打ちでjavascriptを入れる

対処は以下のコードをテーマのfunction.phpに追加するだけ。ダイアログのメッセージが日本語の場合には文字コードをUTF-8で保存することに注意。

function admin_edit_confirm() {
	echo '
<script>
  jQuery("#publish").live("click", function(e){
    if (!confirm(jQuery("#publish").val() + " is OK?")) {
      jQuery("#ajax-loading").hide();
      jQuery("#publish").removeClass("button-primary-disabled");
      jQuery("#save-post").removeClass("button-disabled");
      return false;
    }
 });
</script>';
}
add_action("admin_print_scripts", "admin_edit_confirm", 20);

管理画面ではデフォルトでjqueryが読み込まれるので、それを利用して id=”publish” の clickイベントを追加しているだけ。記事、固定ページ、リンクなどの公開、追加、更新時に確認ダイアログがあがる。
公開ボタンと下書き保存ボタンが変わり、登録中にグルグル回る画像が出る部分、確認ダイアログでNOの場合に元に戻す処理がベタ打ちなのがちょっと…だが、ひとまずということでお茶を濁した。

ここからは脱線話

wordpressもそうだけど、最近のウェブサービスでは確認画面が無いケースが多い。gmailなんかも送信内容確認画面が無い。
その一方で今まで携わってきた色々な仕事では、確認画面があっても「エンターキー2回で更新できます」といった具合の操作で、確認画面見ていますか?本当に確認必要ですか?なんて場面もあったりする。

うっかり操作ミスを防ぐという意味で、操作をちょっと複雑にするというのは方法論としてアリだ。でもその一方で、分かりやすい、操作しやすいという面とのトレードオフなところは、もうちょっと考えないとかなと思う。ここはデザインの領域でもあるから余計に面倒。

最初から確認画面無ければ、その使い方に沿ってしまえる人だって大勢いるわけで、このあたりは本当に難しいところ。

さらに言えば

今回はダイアログを1つ噛ませるだけだったので、そんなに手間ではなかった。どちらかと言えば、見た目のコーディングに近い作業で済んだので「ちょっと見出しの文字を大きめに出来ない?」なんて対応に近かった。それはそれで作業として存在するものの、いわゆるシステムの部分は変更無しで済んだ。

これが「確認画面を表示して、そこで公開するかどうかという風に出来ないか?」だと手間は全然違ってしまう。要求する方としては「確認」なのは変わりないので「うっかり公開するのを避けるために確認一発できるようにしてくれない?」という相談も、話の持っていき方で工数や苦労の中身が変わってしまうというのも、システム開発のややこしさだったりする。