先日リリースした楽モでは、モデルではない投稿内容の削除を手作業で行っています。
一覧ページよりモデルではない画像を探し、一旦管理画面に入り、「ゴミ箱へ移動」をクリックするという流れが非常に面倒でしたので、フロントエンドより削除できるように考えました。
ADs
まずはadmin_barに削除用のボタンを追加します。
ボタンの追加方法については「管理バー WP Admin Bar を徹底的にカスタマイズしてみる」を参考にしました。
functions.phpに以下の記述を追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function add_delete( $wp_admin_bar ) { global $user_level,$post; get_currentuserinfo(); //if文の中は削除ボタンを表示させる条件となります。ここではuser_level==10(つまり管理者)でかつ個別ページでのみボタンを表示させるようにしています。 if ($user_level == 10 && is_single()) { $wp_admin_bar->add_node(array( 'id' => 'delete', 'title' => '<form action="./" method="post"><input type="hidden" name="delid" value="'.$post->ID.'" /><input type="submit" value="'.$post->ID.'の投稿を削除"></form>' )); } } add_action( 'admin_bar_menu', 'add_delete', 1000 ); |
上記のスクリプトでボタンを設置し、データを送信する(POST)ことができますが、そのPOSTを受け取って削除する処理が必要です。
同様にfunctions.phpに以下の記述を追加します。
1 2 3 4 5 6 7 8 9 |
// function del_exec(){ global $user_level; get_currentuserinfo(); if ($user_level == 10 && isset($_POST["delid"])) { wp_delete_post($_POST["delid"]); } } add_action( 'init', 'del_exec'); |
これでPOSTデータを受け取り削除処理が実行されます。
最低限の処理しか書いてませんので、そのままfunctions.phpに追加するだけだとセキュリティ上非常に危険なスクリプトになる恐れがあります。
使用する際は充分ご注意ください。
ADs
コメントはまだありません。