我想默认关闭页面和自定义帖子类型的评论
最初,我只是在注释显示功能中使用了条件语句,以避免在这些页面上显示该块,但是我需要用户能够根据需要重新打开注释。
我想默认关闭页面和自定义帖子类型的评论
最初,我只是在注释显示功能中使用了条件语句,以避免在这些页面上显示该块,但是我需要用户能够根据需要重新打开注释。
Answers:
据我了解,您希望将页面和某些自定义帖子类型设置为默认情况下具有“关闭”评论,而帖子仍将使用默认选项(即评论“打开”)。在这种情况下,以下函数将执行此操作。
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' );
当您创建新帖子(自定义类型或常规)时,WordPress会调用get_default_post_to_edit
它来设置新帖子将具有的默认值。
此函数提供了一些用于更改默认标题,内容和摘录的过滤器挂钩,但不幸的是,其他所有内容都没有...不过,每个过滤器都将完整的$post
对象传递给回调,本质上这意味着可以重新定义多个属性(或者只定义一个我们喜欢)
这应该为您工作,只需在开关内添加代码应适用的帖子类型即可。(电影和页面均为示例)。
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_comment_status
。
希望能有所帮助.... :)
我已经编写了一个插件来默认禁用页面上的评论。 http://wordpress.org/extend/plugins/page-comments-off-please/
也许会有帮助吗?
根据此线程,如果不使用自定义插件或函数来完成请求,就无法实现您所请求的内容。
我建议您在注释显示中仍使用您的条件,但使用选项来存储您的条件设置。然后,您可以在“设置”菜单中添加一个页面,管理员可以根据需要打开或关闭注释。
在我看来,您想将默认注释设置为全局设置,而不是每次创建页面时都将注释设置为“关”。这是可能的。
转到WordPress管理部分中的设置>>讨论。在第一部分(“默认文章设置”中,您会看到一个名为“允许人们在新文章上发表评论”的选项)...取消选中此选项。
现在,默认情况下,所有新帖子,页面和自定义帖子类型的评论将被“关闭”。您仍可以根据情况,通过在各个帖子/页面编辑屏幕上的“讨论”元框中选择相应的复选框,将评论重新打开。