禁止评论显示自定义帖子类型的公共内容

时间:2017-03-03 作者:smartcat

我有一个支持评论的CPT。本CPT仅供内部使用。但是,注释会显示在“最近的注释”默认小部件中。它们也会显示在RSS提要中。

有没有一种简单的方法可以防止CPT注释出现在小部件、提要等中?

非常感谢。

1 个回复
SO网友:Dave Romsey

从最近的评论小部件中删除自定义帖子类型的评论可以使用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;
}
从RSS评论源中删除自定义帖子类型的评论这段代码(基于找到的解决方案here) 将允许您删除与bookproduct RSS注释提要中的帖子类型(例如)(http://example.com/comments/feed). 它通过改变where 使用comment_feed_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\' )";
}