フロントエンドに "コメントの削除"リンクを出力しようとしています。これが私のこれまでの試みです。
printf(
'<a href="%s">%s</a>',
wp_nonce_url(
admin_url( "comment.php?c=$comment_id&action=deletecomment" ),
'delete-comment_' . $comment_id
),
__( 'Delete comment', 'text-domain' )
);
私はedit_comment
capを作者の役割に追加しました。しかし、著者としてログインして[コメントの削除]をクリックすると、白い画面に次のメッセージが表示されます。
申し訳ありませんが、この投稿のコメントを編集することはできません。
WordPressで作成していただきありがとうございます。
バージョン4.7.4
どのように私は働く永久削除コメントリンクを出力することができますか?
簡単にテストした後、OPのコードスニペットは動作しているようです:
printf(
'<a href="%s">%s</a>',
wp_nonce_url(
admin_url( "comment.php?c=$comment_id&action=deletecomment" ),
'delete-comment_' . $comment_id
),
esc_html__( 'Delete comment', 'text-domain' )
);
しかし、authorのみがhir自身の投稿へのコメントを削除するようにしなければならないようです 、そうでない場合は、edit_others_posts
およびedit_published_posts
primitive機能を探します。
edit_comment
はprimitive機能ではないため、代わりに map_meta_cap()
関数を見て、primitive依存する機能。 edit_comment
はmeta機能であり、以下を使用していることがわかります。
$caps = map_meta_cap( 'edit_post', $user_id, $post->ID );
孤立していないコメント用。次に、edit_post
メタ機能が他のprimitive機能にマッピングされる部分を調べる必要があります。そこに可能なマッピングはほとんどありません。 edit_others_posts
およびedit_published_posts
primitive機能へ。
ジャンガレアは、役割と能力に関するすばらしい 記事 を書いています。