禁用我的静态页面的评论的问题

时间:2013-06-26 作者:AndreaNobili

我是WordPress的新手(我来自Joomla)。

我正在使用WP开发一个主要是静态的网站(因为也许将来我会有一些动态行为,而且WP很轻)

所以我有一些静态页面组成了我的网站。

问题是,我无法禁用这些页面上的评论,事实上,如果您转到此处:http://onofri.org/example/ 您可以说启用了Leave a Reply

我进入WP管理小组,进入:Settings ---> Discussion 在这里,我禁用了所有复选框(包括Allow people to post comments on new articles)

为什么我不能禁用它?我该怎么办?

Tnx公司

安德烈

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

首先,感谢Ian Stewart 此处的代码-

在里面functions.php 粘贴以下代码:

// Template for comments and pingbacks.
if ( ! function_exists( \'my_comment\' ) ) :

function my_comment( $comment, $args, $depth ) {
    $GLOBALS[\'comment\'] = $comment;
    switch ( $comment->comment_type ) :
        case \'pingback\' :
        case \'trackback\' :
        // Display trackbacks differently than normal comments.
    ?>
    <li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
        <p><?php _e( \'Pingback:\', \'your-theme\' ); ?> <?php comment_author_link(); ?> <?php edit_comment_link( __( \'(Edit)\', \'your-theme\' ), \'<span class="edit-link">\', \'</span>\' ); ?></p>
    <?php
            break;
        default :
        // Proceed with normal comments.
        global $post;
    ?>
    <li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
        <article id="comment-<?php comment_ID(); ?>" class="comment">
            <header class="comment-meta comment-author vcard">
                <?php
                    echo get_avatar( $comment, 44 );
                    printf( \'<cite class="fn">%1$s %2$s</cite>\',
                        get_comment_author_link(),
                        // If current post author is also comment author, make it known visually.
                        ( $comment->user_id === $post->post_author ) ? \'<span> \' . __( \'Post author\', \'your-theme\' ) . \'</span>\' : \'\'
                    );
                    printf( \'<a href="%1$s"><time datetime="%2$s">%3$s</time></a>\',
                        esc_url( get_comment_link( $comment->comment_ID ) ),
                        get_comment_time( \'c\' ),
                        /* translators: 1: date, 2: time */
                        sprintf( __( \'%1$s at %2$s\', \'your-theme\' ), get_comment_date(), get_comment_time() )
                    );
                ?>
            </header><!-- .comment-meta -->
            <?php if ( \'0\' == $comment->comment_approved ) : ?>
                <p class="comment-awaiting-moderation"><?php _e( \'Your comment is awaiting moderation.\', \'your-theme\' ); ?></p>
            <?php endif; ?>
            <section class="comment-content comment">
                <?php comment_text(); ?>
                <?php edit_comment_link( __( \'Edit\', \'your-theme\' ), \'<p class="edit-link">\', \'</p>\' ); ?>
            </section><!-- .comment-content -->

            <div class="reply">
                <?php comment_reply_link( array_merge( $args, array( \'reply_text\' => __( \'Reply\', \'your-theme\' ), \'after\' => \' <span>&darr;</span>\', \'depth\' => $depth, \'max_depth\' => $args[\'max_depth\'] ) ) ); ?>
            </div><!-- .reply -->
        </article><!-- #comment-## -->
    <?php
        break;
    endswitch; // end comment_type check
}
endif;
并创建另一个包含以下内容的PHP文件,并将其命名为comments.php:

<?php /* The Comments Template — with, er, comments! */ ?>                      
                        <div id="comments">
<?php /* Run some checks for bots and password protected posts */ ?>    
<?php
        $req = get_option(\'require_name_email\'); // Checks if fields are required.
        if ( \'comments.php\' == basename($_SERVER[\'SCRIPT_FILENAME\']) )
                die ( \'Please do not load this page directly. Thanks!\' );
        if ( ! empty($post->post_password) ) :
                if ( $_COOKIE[\'wp-postpass_\' . COOKIEHASH] != $post->post_password ) :
?>
                                <div class="nopassword"><?php _e(\'This post is password protected. Enter the password to view any comments.\', \'your-theme\') ?></div>
                        </div><!-- .comments -->
<?php
                return;
        endif;
endif;
?>

<?php /* See IF there are comments and do the comments stuff! */ ?>                                            
<?php if ( have_comments() ) : ?>

<?php /* Count the number of comments and trackbacks (or pings) */
$ping_count = $comment_count = 0;
foreach ( $comments as $comment )
        get_comment_type() == "comment" ? ++$comment_count : ++$ping_count;
?>

<?php /* IF there are comments, show the comments */ ?>
<?php if ( ! empty($comments_by_type[\'comment\']) ) : ?>

                                <div id="comments-list" class="comments">
                                        <h3><?php printf($comment_count > 1 ? __(\'<span>%d</span> Comments\', \'your-theme\') : __(\'<span>One</span> Comment\', \'your-theme\'), $comment_count) ?></h3>

<?php /* If there are enough comments, build the comment navigation  */ ?>                                      
<?php $total_pages = get_comment_pages_count(); if ( $total_pages > 1 ) : ?>
                                        <div id="comments-nav-above" class="comments-navigation">
                                                                <div class="paginated-comments-links"><?php paginate_comments_links(); ?></div>
                                        </div><!-- #comments-nav-above -->                                      
<?php endif; ?>                                

<?php /* An ordered list of our custom comments callback, custom_comments(), in functions.php   */ ?>                          
                                        <ol>
<?php wp_list_comments(\'type=comment&callback=custom_comments\'); ?>
                                        </ol>

<?php /* If there are enough comments, build the comment navigation */ ?>
<?php $total_pages = get_comment_pages_count(); if ( $total_pages > 1 ) : ?>                                    
                                <div id="comments-nav-below" class="comments-navigation">
                                                <div class="paginated-comments-links"><?php paginate_comments_links(); ?></div>
                </div><!-- #comments-nav-below -->
<?php endif; ?>                                

                                </div><!-- #comments-list .comments -->

<?php endif; /* if ( $comment_count ) */ ?>

<?php /* If there are trackbacks(pings), show the trackbacks  */ ?>
<?php if ( ! empty($comments_by_type[\'pings\']) ) : ?>

                                <div id="trackbacks-list" class="comments">
                                        <h3><?php printf($ping_count > 1 ? __(\'<span>%d</span> Trackbacks\', \'your-theme\') : __(\'<span>One</span> Trackback\', \'your-theme\'), $ping_count) ?></h3>

<?php /* An ordered list of our custom trackbacks callback, custom_pings(), in functions.php   */ ?>                                    
                                        <ol>
<?php wp_list_comments(\'type=pings&callback=custom_pings\'); ?>
                                        </ol>                          

                                </div><!-- #trackbacks-list .comments -->                      


<?php endif /* if ( $ping_count ) */ ?>
<?php endif /* if ( $comments ) */ ?>

<?php /* If comments are open, build the respond form */ ?>
<?php if ( \'open\' == $post->comment_status ) : ?>
                                <div id="respond">
                                <h3><?php comment_form_title( __(\'Post a Comment\', \'your-theme\'), __(\'Post a Reply to %s\', \'your-theme\') ); ?></h3>

                                <div id="cancel-comment-reply"><?php cancel_comment_reply_link() ?></div>

<?php if ( get_option(\'comment_registration\') && !$user_ID ) : ?>
                                        <p id="login-req"><?php printf(__(\'You must be <a href="%s" title="Log in">logged in</a> to post a comment.\', \'your-theme\'),
                                        get_option(\'siteurl\') . \'/wp-login.php?redirect_to=\' . get_permalink() ) ?></p>

<?php else : ?>
                                        <div class="formcontainer">    


                                                <form id="commentform" action="<?php echo get_option(\'siteurl\'); ?>/wp-comments-post.php" method="post">

<?php if ( $user_ID ) : ?>
                                                        <p id="login"><?php printf(__(\'<span class="loggedin">Logged in as <a href="%1$s" title="Logged in as %2$s">%2$s</a>.</span> <span class="logout"><a href="%3$s" title="Log out of this account">Log out?</a></span>\', \'your-theme\'),
                                                                get_option(\'siteurl\') . \'/wp-admin/profile.php\',
                                                                esc_html($user_identity, true),
                                                                wp_logout_url(get_permalink()) ) ?></p>

<?php else : ?>

                                                        <p id="comment-notes"><?php _e(\'Your email is <em>never</em> published nor shared.\', \'your-theme\') ?> <?php if ($req) _e(\'Required fields are marked <span class="required">*</span>\', \'your-theme\') ?></p>

              <div id="form-section-author" class="form-section">
                                                                <div class="form-label"><label for="author"><?php _e(\'Name\', \'your-theme\') ?></label> <?php if ($req) _e(\'<span class="required">*</span>\', \'your-theme\') ?></div>
                                                                <div class="form-input"><input id="author" name="author" type="text" value="<?php echo $comment_author ?>" size="30" maxlength="20" tabindex="3" /></div>
              </div><!-- #form-section-author .form-section -->

              <div id="form-section-email" class="form-section">
                                                                <div class="form-label"><label for="email"><?php _e(\'Email\', \'your-theme\') ?></label> <?php if ($req) _e(\'<span class="required">*</span>\', \'your-theme\') ?></div>
                                                                <div class="form-input"><input id="email" name="email" type="text" value="<?php echo $comment_author_email ?>" size="30" maxlength="50" tabindex="4" /></div>
              </div><!-- #form-section-email .form-section -->

              <div id="form-section-url" class="form-section">
                                                                <div class="form-label"><label for="url"><?php _e(\'Website\', \'your-theme\') ?></label></div>
                                                                <div class="form-input"><input id="url" name="url" type="text" value="<?php echo $comment_author_url ?>" size="30" maxlength="50" tabindex="5" /></div>
              </div><!-- #form-section-url .form-section -->

<?php endif /* if ( $user_ID ) */ ?>

              <div id="form-section-comment" class="form-section">
                                                                <div class="form-label"><label for="comment"><?php _e(\'Comment\', \'your-theme\') ?></label></div>
                                                                <div class="form-textarea"><textarea id="comment" name="comment" cols="45" rows="8" tabindex="6"></textarea></div>
              </div><!-- #form-section-comment .form-section -->

              <div id="form-allowed-tags" class="form-section">
                      <p><span><?php _e(\'You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes:\', \'your-theme\') ?></span> <code><?php echo allowed_tags(); ?></code></p>
              </div>

<?php do_action(\'comment_form\', $post->ID); ?>

                                                        <div class="form-submit"><input id="submit" name="submit" type="submit" value="<?php _e(\'Post Comment\', \'your-theme\') ?>" tabindex="7" /><input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" /></div>

<?php comment_id_fields(); ?>  

<?php /* Just … end everything. We\'re done here. Close it up. */ ?>  

                                                </form><!-- #commentform -->                                                                            
                                        </div><!-- .formcontainer -->
<?php endif /* if ( get_option(\'comment_registration\') && !$user_ID ) */ ?>
                                </div><!-- #respond -->
<?php endif /* if ( \'open\' == $post->comment_status ) */ ?>
<?php comment_form(); ?>
                        </div><!-- #comments -->
现在将以下代码块放入page.php 要在页面中激活评论模板,请执行以下操作:

<?php comments_template( \'\', true ); ?>
希望,它会像你想要的那样。因此,你必须按照这里的代码做一些模板CSS。

结束