在博客主页上未调用Comments.php

时间:2016-11-29 作者:Digital Brent

我正在为创建自定义主题my blog 我已经写了一段时间的评论了。我尝试了一些不同的策略,阅读了很多抄本和这里的问题,但我似乎无法让评论起作用。

我已经创建了自定义注释。php文件并将其放在主题目录中,但我知道它甚至没有包含在博客中,因为我放了一些控制台日志,但它们没有显示出来。

问题似乎比这更复杂,因为我可以显示评论表单,但我尝试输入一些测试评论,当我单击表单上的提交时,没有评论提交到数据库,它只是将我重定向到单条。php的博客条目,我试图发表评论。

我试着复制评论。php来自2016年的主题,但这也没有什么不同。

我一直在遵循一些不同的教程,了解如何设置此功能,并试图在讨论评论的wordpress codex页面中找到我的答案。php,但我没有任何运气。如果有人能看看我的博客,告诉我哪里可能出错,我会非常感谢你的帮助。

我用这行代码调用注释部分:

<?php comments_template(); ?>
这是我自定义注释的代码。php:

<?php
if(!empty($_SERVER[\'SCRIPT_FILENAME\']) && \'comments.php\' == basename($_SERVER[\'SCRIPT_FILENAME\'])) :
    die("You shall not pass!");
endif;

if ( post_password_required() ) {
    return;
}
?>
<script type="text/javascript">console.log("Is this thing on?");</script>
<div id="comments" class="comments-area">

    <?php if ( have_comments() ) : ?>
        <h2 class="comments-title">
            <?php
                $comments_number = get_comments_number();
                if ( 1 === $comments_number ) {
                    /* translators: %s: post title */
                    printf( _x( \'One thought on &ldquo;%s&rdquo;\', \'comments title\', \'twentysixteen\' ), get_the_title() );
                } else {
                    printf(
                        /* translators: 1: number of comments, 2: post title */
                        _nx(
                            \'%1$s thought on &ldquo;%2$s&rdquo;\',
                            \'%1$s thoughts on &ldquo;%2$s&rdquo;\',
                            $comments_number,
                            \'comments title\',
                            \'twentysixteen\'
                        ),
                        number_format_i18n( $comments_number ),
                        get_the_title()
                    );
                }
            ?>
        </h2>

        <?php the_comments_navigation(); ?>


        <ol class="comment-list">
            <?php
                wp_list_comments( array(
                    \'style\'       => \'ol\',
                    \'short_ping\'  => true,
                    \'avatar_size\' => 42,
                ) );
            ?>
        </ol><!-- .comment-list -->

        <?php the_comments_navigation(); ?>

    <?php endif; // Check for have_comments(). ?>

    <?php
        // If comments are closed and there are comments, let\'s leave a little note, shall we?
        if ( ! comments_open() && get_comments_number() && post_type_supports( get_post_type(), \'comments\' ) ) :
    ?>
        <p class="no-comments"><?php _e( \'Comments are closed.\', \'twentysixteen\' ); ?></p>
    <?php endif; ?>

    <?php
        comment_form( array(
            \'title_reply_before\' => \'<h2 id="reply-title" class="comment-reply-title">\',
            \'title_reply_after\'  => \'</h2>\',
        ) );
    ?>

</div><!-- .comments-area -->
如果需要更多的代码,请让我知道,我会尽快发布。我真的很想弄清这件事的真相。提前感谢!

1 个回复
SO网友:Dave Romsey

通过设置全局变量,可以在存档页面上启用注释$withcommentstrue 通话前comments_template():

global $withcomments;
$withcomments = true;
comments_template( \'\', true );
作为Michael 在对原帖子的评论中指出,comments_template() 在以下情况下不返回输出$withcommentstrue, 或者在许多其他情况下:

function comments_template( $file = \'/comments.php\', $separate_comments = false ) {
    global $wp_query, $withcomments, $post, $wpdb, $id, $comment,
           $user_login, $user_ID, $user_identity, $overridden_cpage;

    if ( !(is_single() || is_page() || $withcomments) || empty($post) )
        return;
    ...

comment-reply JS

通常,您希望包括comment-reply 正在处理评论的JS(单篇帖子),但内置comment-reply JS脚本似乎不适用于包含多篇文章的页面,因此您需要推出自己的解决方案。