コメントをサポートするCPTがあります。このCPTは内部使用のみを目的としています。ただし、コメントは[最近のコメント]デフォルトウィジェットに表示されます。 RSSフィードにも表示されます。
CPTのコメントがウィジェットやフィードなどに表示されないようにする簡単な方法はありますか?
ありがとうございました
最近のコメントウィジェットの引数はwidget_comments_args
フィルターを使ってカスタマイズできます。コメントが含まれる投稿タイプをカスタマイズするには、$post_type
変数をカスタマイズします。
$post_type
関連するコメントを取得する投稿タイプまたは投稿タイプの配列。任意の値に一致するように 'any'を渡します。デフォルトは空です。
デフォルトでは、すべての投稿タイプのコメントが含まれます。次のコードは、投稿からのコメントだけが表示されるように、$post_type
をpost
のみを含む配列に設定します。追加の投稿タイプを含めるには、それらを単に配列に追加します。
add_action( 'widget_comments_args', 'wpse_widget_comments_args' );
function wpse_widget_comments_args( $args ) {
$args['post_type'] = [
'post',
];
return $args;
}
このコードスニペット(見つかった解決策に基づく here )を使用すると、RSSコメントフィード(http://example.com/comments/feed
)からbook
およびproduct
投稿タイプに関連するコメントを削除できます。 comment_feed_where
フィルタを使用してcomments RSSクエリのwhere
節を変更することによって機能します。
add_filter( 'comment_feed_where', 'wpse_comment_feed_where' );
function wpse_comment_feed_where( $where ) {
return $where . " AND wp_posts.post_type NOT IN ( 'book', 'product' )";
}