主页/WordPress笔记/博客文章/综合文章/如何在 WordPress 评论中显示父级评论(简便方法)

如何在 WordPress 评论中显示父级评论(简便方法)

Bug编译狮

Bug编译狮

要在WordPress的评论页面上显示父级评论,您可以按照以下步骤操作:

  1. 登录到您的WordPress后台
  2. 导航到“设置” > “阅读”,然后找到“显示子评论”的选项并将其设为“打开”。这样评论就会显示所有的子评论。
  3. 如果您想仅显示特定级别的子评论,可以使用PHP代码来过滤和显示这些评论。

示例代码

假设我们想要显示所有级别的子评论(即显示所有级别的评论),我们可以编写如下PHP代码:

<?php if ( have_comments() ) : ?>
    <ol class="commentlist">
        <?php wp_list_comments( array( 'callback' => 'my_custom_comment_callback', 'reverse_top_level' => true, 'top_level' => false ) ); ?>
    </ol>

    <div id="comments" class="comments-list">
        <?php comments_template(); ?>
    </div>
<?php else : // null or 0 items ?>
    <p><?php _e( 'Currently there are no comments.' ); ?></p>
<?php endif; ?>

在这个示例中,my_custom_comment_callback是一个自定义函数,用于处理评论列表。这个函数会根据需要定制显示子评论的方式。通过调整参数,如'reverse_top_level''top_level',您可以控制显示的评论级别。

使用步骤

  1. 打开您的WordPress主题文件夹中的functions.phpcustom-functions.php文件。
  2. 添加上述PHP代码到文件中。
  3. 在编辑器中保存更改。
  4. 浏览到您的WordPress网站,查看评论部分,确保已正确显示了父级评论。

请注意,这个方法依赖于WordPress的核心功能和插件,因此可能在某些环境下不适用或者需要额外的配置。如果您遇到任何问题,请检查相关插件的文档以获取更多帮助。

黑板前的Bug语法讲师

黑板前的Bug语法讲师

在WordPress中,如果你想查看某个特定评论下的所有子评论,可以使用comment_ID作为参数来获取所有的子评论。以下是如何实现这个功能的方法:

方法一:通过嵌套循环

假设我们有以下评论:

<div class="comment">
    <div class="comment-author">
        <cite>John Doe</cite>
    </div>
    <div class="comment-meta comment-time">
        <span class="date">2019-08-23</span>
        <span class="comment-reply-link">Reply</span>
    </div>
    <div class="comment-content">
        <p>这是一条回复。</p>
    </div>
</div>

要获取这条评论的所有子评论,我们可以这样做:

  1. 获取当前评论的ID。
  2. 使用get_children()函数来获取该评论的所有子评论。

下面是具体的HTML和PHP代码例子:

<?php
// 假设我们有一个数组存储了所有评论及其子评论
$comments = [
    // ... 其他评论数据 ...
];

foreach ($comments as $comment) {
    if ($comment['comment_parent'] === $current_comment_id) { // 检查当前评论是否为子评论
        echo '<h2>' . htmlspecialchars($comment['comment_author']) . '</h2>';
        echo '<p>' . htmlspecialchars($comment['comment_content']) . '</p>';
    }
}
?>

方法二:使用comment_ID和嵌套查询

如果你希望只获取当前评论及其子评论,你可以使用comment_ID作为参数来限制结果集。例如,如果想要查看第5个子评论,你可以这样设置参数:

<div class="comment">
    <div class="comment-author">
        <cite>John Doe</cite>
    </div>
    <div class="comment-meta comment-time">
        <span class="date">2019-08-23</span>
        <span class="comment-reply-link">Reply</span>
    </div>
    <div class="comment-content">
        <p>这是一条回复。</p>
    </div>
</div>

<div class="comment">
    <div class="comment-author">
        <cite>John Doe</cite>
    </div>
    <div class="comment-meta comment-time">
        <span class="date">2019-08-23</span>
        <span class="comment-reply-link">Reply</span>
    </div>
    <div class="comment-content">
        <p>这是第6个回复。</p>
    </div>
</div>

<div class="comment">
    <div class="comment-author">
        <cite>John Doe</cite>
    </div>
    <div class="comment-meta comment-time">
        <span class="date">2019-08-23</span>
        <span class="comment-reply-link">Reply</span>
    </div>
    <div class="comment-content">
        <p>这是第7个回复。</p>
    </div>
</div>

<div class="comment">
    <div class="comment-author">
        <cite>John Doe</cite>
    </div>
    <div class="comment-meta comment-time">
        <span class="date">2019-08-23</span>
        <span class="comment-reply-link">Reply</span>
    </div>
    <div class="comment-content">
        <p>这是第8个回复。</p>
    </div>
</div>

然后,在你的PHP脚本中,你可以这样遍历这些评论:

<?php
// 假设我们有一个数组存储了所有评论及其子评论
$comments = [
    // ... 其他评论数据 ...
];

foreach ($comments as $comment) {
    if (isset($comment['comment_post_ID'])) { // 检查是否有子评论
        $parent_comment = get_comment($comment['comment_post_ID']);
        foreach ($parent_comment->children as $child_comment) {
            echo '<h2>' . htmlspecialchars($child_comment['comment_author']) . '</h2>';
            echo '<p>' . htmlspecialchars($child_comment['comment_content']) . '</p>';
        }
    }
}
?>

总结

以上两种方法都可以帮助你在WordPress评论中轻松地查看所有子评论。选择哪种方法取决于你具体的需求和资源可用性。第一种方法适用于需要更多控制权限的情况,而第二种方法则更简单易用。