是否将评论设置为页面和自定义帖子类型的默认设置?

时间:2010-09-21 作者:Mild Fuzz

我想在默认情况下关闭带有页面和自定义帖子类型的评论

最初,我只是在comments display函数中使用条件,以避免在这些页面上显示块,但我需要用户能够根据需要重新打开注释。

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

据我所知,您希望在默认情况下将页面和某些自定义帖子类型设置为注释“关闭”,而帖子仍将使用默认选项(即注释“打开”)。如果是这种情况,以下函数将执行此操作。

function default_comments_off( $data ) {
    if( $data[\'post_type\'] == \'page\' && $data[\'post_status\'] == \'auto-draft\' ) {
        $data[\'comment_status\'] = 0;
    }

    return $data;
}
add_filter( \'wp_insert_post_data\', \'default_comments_off\' );

SO网友:t31os

创建新帖子(自定义类型或常规)时,WordPress会调用get_default_post_to_edit 然后设置新帖子的默认值。

此函数提供了几个过滤器挂钩,用于更改默认标题、内容和摘录,但遗憾的是,没有其他功能。。。然而,每个过滤器都会通过完整的$post 对象,本质上这意味着可以重新定义多个属性(如果愿意,也可以只定义一个)

这应该对您有用,只需将代码应应用到的post类型添加为开关内的case即可。。(电影和页面是示例)。。

function my_default_content( $post_content, $post ) {
    if( $post->post_type )
    switch( $post->post_type ) {
        case \'page\':
        case \'movie\':
            $post->comment_status = \'closed\';
        break;
    }
    return $post_content;
}
add_filter( \'default_content\', \'my_default_content\', 10, 2 );
代码在WP 3.0.1上进行了测试,具有禁用特定帖子类型注释的预期效果,同时让其他人继承default 来自的状态default_comment_status 选项

希望有帮助……)

SO网友:Travis Northcutt

根据this thread, 如果不使用自定义插件或函数来完成请求,则不可能完成请求。

SO网友:EAMann

我建议在注释显示中仍然使用条件,但使用选项存储条件设置。然后,您可以在设置菜单中添加一个页面,允许管理员根据需要打开或关闭评论。

我突然想到,您想将评论的默认值设置为;“关”;作为全局设置,而不是将其设置为;“关”;每次创建页面时。这is 可能的

转到设置(>)>;WordPress管理部分的讨论。在第一部分(“Default Article Settings”(默认文章设置)中,您将看到一个名为“Allow people to post comments on new articles”(允许人们对新文章发表评论)的选项……取消选中此选项。

现在,默认情况下,注释将变为“;“关”;用于所有新帖子、页面和自定义帖子类型。您仍然可以回绝评论”;在“上”;根据具体情况,在;“讨论”;单个帖子/页面编辑屏幕上的元框。

SO网友:kaizer1v

如果您只需在函数中添加此代码。php

<?php
add_post_type_support( \'your_custom_post_type\', array( \'comments\' ) );
?>
转到帖子,在屏幕选项中,勾选“讨论”和“评论”,您可以启用/禁用每种自定义帖子类型的评论。

结束

相关推荐