为什么在我的CUSTOM_POST_TYPE上默认禁用注释?

时间:2012-01-10 作者:timshutes

我正在为客户机的播客解决方案中使用自定义的帖子类型+分类法。注释的设置(设置>>讨论)设置为“允许注释”。在“帖子”选项卡下添加/编辑帖子时,默认情况下会启用评论。

但是,当我在自定义帖子类型(播客)下添加/编辑帖子时,默认情况下会禁用评论。

用户仍然可以手动为每个帖子启用评论,但这显然并不理想。有什么想法?

更新:函数中的相关代码。php

function create_my_post_types() {
    register_post_type( \'podcast\',
        array(
            \'labels\' => array(
                \'name\' => __( \'Podcast\' ),
                \'singular_name\' => __( \'Podcast\' ),
                \'new_item\' => __( \'New Episode\' ),
                \'add_new_item\' => __( \'Add New Episode\' )
            ),
            \'public\' => true,
            \'hierarchical\' => true,
            \'menu_icon\' => get_stylesheet_directory_uri() . \'/assets/podcast-icon.png\', // 16px16
            \'menu_position\' => 9,
            \'supports\' => array( \'title\', \'editor\', \'comments\', \'post-templates\'),
            \'register_meta_box_cb\' => \'add_podcast_metaboxes\' // This registers the metabox that we\'ll add later.
        )
    );
}

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

好吧,我解决了这个问题。这就是问题所在。

默认情况下,对自定义帖子类型禁用注释。即使在总体设置中启用了它们,也会发生这种情况

要修复它,我所要做的就是:

在“设置”>“讨论”中,取消选中“允许人们对新文章发表评论”设置

  • 单击“保存更改”
  • 现在返回并重新选中“允许人们对新文章发表评论”
  • 单击“保存更改”
    1. 对于自定义帖子类型,您似乎需要启动此设置。默认情况下,创建的自定义帖子类型的所有新帖子都将启用该框。现有员额将保留其以前的设置。我假设允许trackback也是这样。希望这对某人有帮助。。。

    SO网友:Sagive

    这是默认状态。。您需要更改生成自定义帖子类型的“支持行”。。

    Meaning this line:

    // 或者类似的东西

    \'supports\' => array(\'title\',\'editor\',\'author\',\'excerpt\',\'revisions\'),
    

    To this line:

    \'supports\' => array(\'title\',\'editor\',\'author\',\'excerpt\',\'comments\',\'revisions\'),
    
    希望这有帮助<干杯,萨吉夫。

    添加的函数(函数文件内部):

    function default_comments_on( $data ) {
        if( $data[\'post_type\'] == \'your_custom_post_name\' ) {
            $data[\'comment_status\'] = 1;
        }
    
        return $data;
    }
    add_filter( \'wp_insert_post_data\', \'default_comments_on\' );
    

    SO网友:JediTricks007

    以下建议对我都不起作用。Sagive SEO的功能几乎对我有用。我检查了数据库,发现comment\\u status的唯一值是open和closed。该函数插入1作为值。我修改了函数,现在它似乎工作得很好。我希望这对某人有所帮助。

    function default_comments_on( $data ) {
        if( $data[\'post_type\'] == \'your_custom_post_type_name\' ) {
            $data[\'comment_status\'] = \'open\';
        }
    
        return $data;
    }
    add_filter( \'wp_insert_post_data\', \'default_comments_on\' );
    

    SO网友:Jason Rhodes

    只是随机尝试一下,但您是否必须在register_post_type() 呼叫

    结束

    相关推荐

    Ajax submit comments

    我想通过ajax提交评论。单击comment submit按钮,通过jquery的ajax方法和结果发布评论(“等待审核…”)显示在页面上。我进入了剧本。js文件,并为按钮添加了一个单击处理程序。它验证并执行ajax提交,但这不起作用。单击提交评论仍会重定向到wp评论帖子。php页面。让它发挥作用的秘诀是什么?以下是我在脚本中的内容。js公司:$(\"#my_comment_form\").validate({ submitHandler: function(data){