是否仅禁用评论表单/框本身?

时间:2014-11-07 作者:Ralph

我试图编写一个函数,隐藏注释表单本身,同时保留注释和注释计数不变。

我希望注释表单仅在帖子URL中有某个参数时显示。

我所能找到的就是禁用所有与注释相关的代码。我想出了一个需要一些css的方法(在需要隐藏时给表单另一个ID,然后显示:none;)。

有没有人知道只使用PHP的方法?

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

这个comments_open() 核心主题和典型主题都使用该函数来确定特定帖子的状态。它具有与结果同名的过滤器,您可以使用该过滤器为帖子单独操作它。

comment_form() 如果检查为false并触发,则不会实际输出表单comment_form_comments_closed 在这种情况下的行动。

core附带的原生WP主题也是将此检查构建到模板中的好例子。

SO网友:Ralph

这里有两种解决方案functions.php. 它们并不是我真正需要的,但可能对其他人有用。

解决方案1可用于关闭某些帖子的评论:

function close_comment_form( $open, $post_id ) {
    $post = get_post( $post_id );
    if( $post->post_type == \'post\' ) {
        return false;
    }
    return $open;
}
add_filter( \'comments_open\', \'close_comment_form\', 10 , 2 );
解决方案2可通过以下方式隐藏注释表单display: none; 在CSS选择器上#HIDEcommentform:

function my_comment_form_defaults($defaults) {
    $defaults[\'id_form\'] = \'HIDEcommentform\';
    return $defaults;
}
add_filter(\'comment_form_defaults\', \'my_comment_form_defaults\');

结束

相关推荐

GET_COMMENTS与POST_ID不一致

我正在尝试从另一个帖子中获得评论。我正在获取post\\u id并检查它是否有评论我每次都能得到当前帖子的评论,但对于另一篇帖子,我得到的结果参差不齐(我确实做到了,但无法重现结果)这是我正在处理的代码,一些替代尝试被注释掉了:if(get_comments_number($getLangsPostID) > 0){ //echo \"<pre>This post id is \".$thisPostID.\" The other language post id is