首页 > 解决方案 > 在 wordpress 中自定义 comment_form() 和 comments.php

问题描述

对于我的一生,我似乎找不到任何可靠或有效的来源。我正在处理的当前主题没有 comments.php 文件。我希望能够自定义评论布局,并在使用 comments_template() 调用它时查看。但它似乎转到了我找不到的默认模板。我已经尝试使用来自 2020 主题的 comments.php,但它会引发大量错误并使我的网站出错。

我希望能够找到 comments_template() 正在调用的文件并对其进行编辑。或者更具体地说是 comments_form()。

标签: phpwordpress

解决方案


尝试将此代码用作您的comments.php文件。这是一个非常简单的评论模板,可以帮助您入门,并带有一些评论。该代码取自 Zac Gordon 的课程。您应该进行替换并搜索 wphierarchy 并将其更改为您的主题 slug。

<?php

if ( post_password_required() ) {
    return;
}
?>

<div id="comments" class="comments-area">

    <?php
    // You can start editing here -- including this comment!
    if ( have_comments() ) : ?>
        <h2 class="comments-title">
            <?php
                printf( // WPCS: XSS OK.
                    esc_html( _nx( 'One thought on &ldquo;%2$s&rdquo;', '%1$s thoughts on &ldquo;%2$s&rdquo;', get_comments_number(), 'comments title', 'wphierarchy' ) ),
                    esc_html( _nx( 'One thought on &ldquo;%2$s&rdquo;', '%1$s thoughts on &ldquo;%2$s&rdquo;', get_comments_number(), 'comments title', 'wphierarchy' ) ),
                    number_format_i18n( get_comments_number() ),
                    '<span>' . get_the_title() . '</span>'
                );
            ?>
        </h2><!-- .comments-title -->

        <?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : // Are there comments to navigate through? ?>
        <nav id="comment-nav-above" class="navigation comment-navigation" role="navigation">
            <h2 class="screen-reader-text"><?php esc_html_e( 'Comment navigation', 'wphierarchy' ); ?></h2>
            <h2 class="screen-reader-text"><?php esc_html_e( 'Comment navigation', 'wphierarchy' ); ?></h2>
            <div class="nav-links">

                <div class="nav-previous"><?php previous_comments_link( esc_html__( 'Older Comments', 'wphierarchy' ) ); ?></div>
                <div class="nav-previous"><?php previous_comments_link( esc_html__( 'Older Comments', 'wphierarchy' ) ); ?></div>
                <div class="nav-next"><?php next_comments_link( esc_html__( 'Newer Comments', 'wphierarchy' ) ); ?></div>
                <div class="nav-next"><?php next_comments_link( esc_html__( 'Newer Comments', 'wphierarchy' ) ); ?></div>

            </div><!-- .nav-links -->
        </nav><!-- #comment-nav-above -->
        <?php endif; // Check for comment navigation. ?>

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

        <?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : // Are there comments to navigate through? ?>
        <nav id="comment-nav-below" class="navigation comment-navigation" role="navigation">
            <h2 class="screen-reader-text"><?php esc_html_e( 'Comment navigation', 'wphierarchy' ); ?></h2>
            <h2 class="screen-reader-text"><?php esc_html_e( 'Comment navigation', 'wphierarchy' ); ?></h2>
            <div class="nav-links">

                <div class="nav-previous"><?php previous_comments_link( esc_html__( 'Older Comments', 'wphierarchy' ) ); ?></div>
                <div class="nav-previous"><?php previous_comments_link( esc_html__( 'Older Comments', 'wphierarchy' ) ); ?></div>
                <div class="nav-next"><?php next_comments_link( esc_html__( 'Newer Comments', 'wphierarchy' ) ); ?></div>

            </div><!-- .nav-links -->
        </nav><!-- #comment-nav-below -->
        <?php
        endif; // Check for comment navigation.

    endif; // Check for have_comments().


    // If comments are closed and there are comments, let's leave a little note
    if ( ! comments_open() && get_comments_number() && post_type_supports( get_post_type(), 'comments' ) ) : ?>

        <p class="no-comments"><?php esc_html_e( 'Comments are closed.', 'wphierarchy' ); ?></p>
    <?php
    endif;

    comment_form();
    ?>

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

推荐阅读