完全隐藏评论表单(最好不使用css)

时间:2011-05-24 作者:anu

我需要有条件地不显示评论表单。

我已将筛选器添加到comment_form_defaults 具体如下:

function dont_show_comments($defaults) {
  $defaults = array(
    \'fields\'               => array(),
    \'comment_field\' => \'\',
    \'must_log_in\'          => \'<p class="must-log-in">\' .  sprintf( __( \'You must be <a href="%s">logged in</a> to post a comment.\' ), wp_login_url( apply_filters( \'the_permalink\', get_permalink( $post_id ) ) ) ) . \'</p>\',
    \'logged_in_as\'         => \'\',
    \'comment_notes_before\' => \'\',
    \'comment_notes_after\'  => \'\',
    \'id_form\'              => \'commentform\',
    \'id_submit\'            => \'hide\',
    \'title_reply\'          => __( \'You need to have accepted the terms to leave a reply\' ),
    \'title_reply_to\'       => __( \'Leave a Reply %s\' ),
    \'cancel_reply_link\'    => __( \'Cancel reply\' ),
    \'label_submit\'         => \'\',
   );

return $defaults;
}
这基本上是可行的,但我只剩下一个未标记的按钮(提交按钮)。

不显示表单的最佳方式是什么?最好是通过挂钩,最好不要使用CSS。

1 个回复
最合适的回答,由SO网友:Hameedullah Khan 整理而成

我只能想出以下方法来实现这一目标。

“有一个过滤器”comments_open“该检查提供了$post\\u id的帖子是否有打开的评论。您可以使用该检查返回false。

  • 还有另一个筛选器”comments_template“返回用于显示评论表单的模板文件。您可以返回一个空文件,因此不会显示评论表单。
  • 另一个是将$post对象上的comment\\u状态设置为在显示评论表单之前关闭,即使主题使用硬编码的评论表单,它也会阻止主题显示评论表单。
    结束

    相关推荐