次の機能を持つカスタム投稿タイプがあります。
$capabilities = array(
'read_post' => 'administrator',
'read_private_posts' => 'administrator',
'publish_posts' => 'administrator',
'edit_post' => 'administrator',
'edit_posts' => 'administrator',
'edit_published_posts' => 'administrator',
'edit_others_posts' => 'administrator',
'edit_private_posts' => 'administrator',
'delete_post' => 'administrator',
'delete_posts' => 'administrator',
'delete_published_posts' => 'administrator',
'delete_others_posts' => 'administrator',
'delete_private_posts' => 'administrator'
);
そのユーザーが投稿を追加または編集する権限を持っているかどうかを検証するために、current_user_can()
のような(save_post
を介して)保存時にまだ使用する必要がありますか。
これはWordpressのカスタムページではなく、カスタム投稿タイプですので、カスタム投稿タイプを使用する場合はnonceを検証する必要がありますか、それとも組み込みですか。この投稿タイプでは、Wordpressのフィールド(タイトル、本文など)は使用していません。 add_meta_box()
を使って追加された一対のフィールドがあります。
save_post
を使うとき、あなたはたいていユーザー入力のデータをメタボックスからデータベースに追加/更新します。これを行うとき、あなたはあなたのメタボックスのnonceが有効であることをチェックするべきです。
save_post
がwp_insert_post()
内でトリガーされるので、あなたがパーミッションをチェックするべきです、そしてあなたが投稿管理者側を作成/編集するときだけではありません。