也许有更好的方法解决这个问题,但我允许在整个网站上发表评论,并确保您的自定义帖子类型支持评论:
<?php
register_post_type( \'custom\', array(
// ..
supports => array(
\'comments\',
),
) );
?>
然后将以下函数添加到
functions.php
文件:
function hide_comment_form( $post_type = \'custom\' )
{
// If user is logged in return false
if ( is_user_logged_in() ) {
return false;
} else {
// Else check for special post type
// If on custom post type single return false
if ( is_singular( $post_type ) ) {
return false;
}
// Else return true (hide the form)
return true;
}
}
然后你可以把你的
comment_form()
模板中的代码如下所示:
if ( ! hide_comment_form() ) {
comment_form();
}
当用户未登录时,该函数将始终隐藏注释表单,除非注释表单出现在自定义帖子类型页面上。
如果不想编辑模板文件,还可以将以下内容添加到functions.php
文件:
function comment_form_before_function()
{
if ( hide_comment_form() ) {
echo \'<div style="display: none;">\';
}
}
add_action( \'comment_form_before\', \'comment_form_before_function\', 1 );
function comment_form_after_function()
{
if ( hide_comment_form() ) {
echo \'</div>\';
}
}
add_action( \'comment_form_after\', \'comment_form_after_function\', 99 );