如何在wordpress中禁用特定类别的注释?

时间:2015-07-12 06:50:03

标签: php wordpress comments categories

如何在Wordpress中禁用特定类别的评论表单。 我的意思是,用户将在此类别中发布的每个帖子都不会有评论表单内容。

1 个答案:

答案 0 :(得分:2)

您可以创建两个模板文件,而不是在functions.php中执行此操作。第一个模板文件是您的标准主题模板,第二个模板文件是相同的,除了它不包含注释代码部分。

只需将没有注释代码块category_ {id} .php的模板文件命名并上传到您的主题文件夹即可。 ID是您要禁用评论的类别的ID。

此处有关类别特定模板的更多信息https://developer.wordpress.org/themes/basics/template-hierarchy/#category

此处有关评论模板的详细信息https://codex.wordpress.org/Function_Reference/comments_template

如果您仍希望通过functions.php执行此操作,请参阅此博文http://spicemailer.com/wordpress/disable-hide-comments-posts-specific-categories/,其中使用以下代码段

add_action( 'the_post', 'st_check_for_closed' );

function st_check_for_closed()
{

global $post;

$my_post_cat = wp_get_post_categories($post->ID);


$disabled_cat = array( "1", "3"); // this is he array of disabled categories. Feel free to edit this line as per your needs. 


$my_result = array_intersect($my_post_cat,$disabled_cat);

    if (empty ( $my_result ) ) 
                  {
        return; 
                   }

     else { 
           add_filter( 'comments_open', 'st_close_comments_on_category', 10, 2 );
           add_action('wp_enqueue_scripts', 'st_deregister_reply_js');

         }
}

      function st_deregister_reply_js() 
    {
    wp_deregister_script( 'comment-reply' );

    }


  function st_close_comments_on_category ($open, $post_id) 
    {
        $open = false;
    }