将某一类别的所有帖子修改为“不允许评论”

时间:2011-09-11 作者:themerlinproject

我正在寻找一种方法,将某个类别的所有帖子修改为“不允许评论”,而不必逐个进入每个帖子设置并手动修改。

也许是MySQL语句?

谢谢

2 个回复
最合适的回答,由SO网友:helenhousandi 整理而成

在posts屏幕上,您应该能够按类别进行筛选,然后选择all和bulk edit以关闭评论。

Edit: 批量操作仅适用于每页(例如,20篇文章或您显示的任何数量),因此您必须针对每页结果执行此操作,或者转到屏幕选项并增加屏幕上显示的项目数。

SO网友:Wipqozn

要直接在WordPress中执行此操作,可以使用以下方法:

<?php
    $args = array(\'category\' => *term_id of category to disable comments for*);
    $myposts = get_posts($args);
    foreach($myposts as $post) {
         $my_post = array(
             \'ID\' => $post->ID,
             \'comment_status\' => \'closed\'
         );
         wp_insert_post($my_post);     
    }        
?>
get_posts() 将检索中指定类别的所有帖子$args 签署人:

\'category\' => $term_id
wp_insert_post() 将允许您使用以下设置修改所述帖子以禁用评论:

\'comment_status\' => \'closed\'
您可能希望查看的文档页get_posts()wp_insert_post() for more information.

To ensure that no future posts under this category allow comments you could also use the save_post hook:

save_post 每当创建或更新帖子或页面时运行,可以从导入、帖子/页面编辑表单、xmlrpc或通过电子邮件发布。操作函数参数:post ID。

<?php
    add_action(\'save_posts\', \'disable_comments\');
    function disable_comments($post_id) {
        $disabled_category = /* term_id of the category to disable comments for */
        $category = get_the_category($post_id);
        if($category->cat_ID == $disabled_category) {
           $my_post = array(
             \'ID\' => $post_id,
             \'comment_status\' => \'closed\'
           );
           wp_insert_post($my_post);     
        }
    }
?>
get_the_category() 将检索所选帖子的类别对象。访问documentation 了解更多有关get_the_category().

如果你不知道什么是动作钩,你应该访问this page.

结束

相关推荐

定制帖子类型作者的_Author_Posts_link()

我在博客中既有常规的博客帖子,也有自定义的帖子类型。页面模板显示作者帖子链接。如果您单击该链接查找撰写过一些文章的作者,该页面(博客/作者/作者先生)将显示预期的个人信息和作者的文章列表。但是,如果您创建的用户是作者,但只编写了自定义帖子类型,没有常规帖子,则由\\u author\\u posts\\u link()生成的链接(仍然是正确的链接:blog/authors/mr author)显示一个未填充的页面(即:字段全部为空,帖子列表是所有作者的所有帖子的完整列表)。显然,我们在$authordat