【问题标题】:How do I hide the WordPress comments form?如何隐藏 WordPress 评论表单?
【发布时间】:2011-03-06 15:19:30
【问题描述】:

我有一个插件可以让 Facebook 对 WordPress 发表评论。用户请求了一项功能,该功能将在启用 Facebook 评论的帖子上隐藏默认的 WordPress cmets 表单。

如何动态隐藏 WP cmets 表单?我知道我可以从comments.php 模板中注释掉comment_form();,但我希望能够通过单击按钮来隐藏/取消隐藏它。

是否与comments_template 过滤器有关?

插件的主页是http://grahamswan.com/facebook-comments

【问题讨论】:

    标签: wordpress filter comments


    【解决方案1】:

    将表单包装在一个 div 中,并使用这个简单的 jquery 来显示/隐藏 div。

    <div class="comments">
    <?php comment_form(); ?>
    </div>
    
    <a class="comment_switch">Show / Hide Comments</a>
    
    .hidden{display:none;}
    
    $("comment_switch").click(function () {
         $("comments").toggleClass("hidden")");
       });
    

    【讨论】:

    • 我认为可能有一个合法的 WordPress 方式来做到这一点,但这就足够了。谢谢!
    • 我认为可能有插件,但我所了解的 / 无法在 codex 中找到。
    【解决方案2】:

    我也有这样的需求。我已将评论表替换为适当的消息。这是钩子代码,您可以根据需要更改条件。

    /**
     * Restrict WordPress comment posting to Admin, Authors and HW+ active users
     */
    
    function fun_comment_form_defaults( $defaults ) {
        if ( comments_open() && is_user_logged_in() && ( is_admin() || current_user_can( 'edit_others_posts', get_the_ID() ) || wc_memberships_is_user_active_member( get_current_user_id(), 'hw' ) ) ) {
            return $defaults;
        } else {
            $defaults['comment_field'] = wp_kses_post( sprintf( '<p>You should require an active <a href="%s">HW+ membership</a> to post a comment.</p>', esc_url( get_site_url() . '/membership/' ) ) );
            $defaults['submit_button'] = '';
            $defaults['submit_field']  = '';
            $defaults['fields']              = '';
            return $defaults;
        }
    }
    add_filter( 'comment_form_defaults', 'fun_comment_form_defaults' );
    

    【讨论】:

      猜你喜欢
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-20
      • 2019-10-04
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多