将来WordPressベースのWebサービスを作れないかなぁとぼんやりかんがえつつ、役に立ちそうなことをまとめていくシリーズ(?)です。
1 2 3 4 5 6 |
<?php if (current_user_can('edit_post',$post->ID)): $wpurl = get_bloginfo('wpurl'); $get_del_url = wp_nonce_url( $wpurl.'/wp-admin/post.php?action=delete&post='.$post->ID,'delete-post_'.$post->ID); ?> (<a href="<?php echo $get_del_url; ?>">del</a>) <?php endif; ?> |
ログイン済みで、自分が編集権限のある投稿の場合は削除リンクが出現します。
current_user_can で現在の投稿に削除権限があるかチェックし、あればリンクを生成する処理に進みます。
こうしておかないと、誰でも記事の削除ボタンが押せるようになってしまいます。(権限がなければエラーになるだけですが…)
ちなみにこのリンクをクリックすると、記事が即座にゴミ箱に送られますが、押したそのページに戻ってきてしまいますつまり、よって記事本文がある「詳細ページ」でこれをやると、自分のページが消えてしまい404になりますので、詳細ページ側に仕込む場合はなにか対策が必要ですね。
- 削除後リダイレクトまで仕込む(未検証)
- 新しいタブなどでやる
- 404テンプレートをすこし弄って削除の結果見れなくなった場合は404表示じゃなく「削除完了」表示にする
- 一覧でだけ削除できるようにする
などでしょうか?
マイページなどを持たせるならば、そこに記事のタイトル一覧を出して、そこから消させるのがいいかもしれませんね。
コメントする