web-dev-qa-db-ja.com

カスタム投稿の種類:権限を確認し、nonceを検証します

次の機能を持つカスタム投稿タイプがあります。

$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()を使って追加された一対のフィールドがあります。

1
NightHawk

save_postを使うとき、あなたはたいていユーザー入力のデータをメタボックスからデータベースに追加/更新します。これを行うとき、あなたはあなたのメタボックスのnonceが有効であることをチェックするべきです。

save_postwp_insert_post()内でトリガーされるので、あなたがパーミッションをチェックするべきです、そしてあなたが投稿管理者側を作成/編集するときだけではありません。

1
Stephen Harris