循环获取 Wordpress 页面的“最新评论日期”

Posted

技术标签:

【中文标题】循环获取 Wordpress 页面的“最新评论日期”【英文标题】:Get "latest comment date" of a Wordpress page in a loop 【发布时间】:2022-01-01 03:54:04 【问题描述】:

有没有一种简单的方法可以获取 wordpress 页面的“最新评论日期”?

对于页面本身,有一个简单的解决方案,如下所示:

get_the_date('Y-m-d', $post->ID)

例如,这对我不起作用(尤其是因为我也无法定义最后一条评论):

get_comment_date( 'Ymd', $post->ID);

而且我的数组方式不起作用。 “comment_count”很好,但“get_comment_date( 'd\/m\/Y' )”对于所有页面总是相同的日期 - 为什么?

$args = array(
'post_id' => $post->ID,
'posts_per_page' => 10,
'post_type' => 'page',
'orderby'   => 'date',
'category_name' => 'MyName');

$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>

<?php echo '<div class="comments ' . get_comment_date( 'd\/m\/Y' ) . '"><span>'. $comments_count .'<span></div>'; ?>

<?php endforeach; ?>

【问题讨论】:

澄清一下,您需要获取所有页面的最新评论吗?如果是这样,那你为什么要传递 'post_id' =&gt; $post-&gt;ID, 参数?还是您需要获取特定页面的最新评论? @Ruvee 是的,我需要它用于特定页面,但我不想写入修复 ID,它应该通过“foreach 循环”和“$post->ID”动态获取它... 这能回答你的问题吗? How to Get Latest Comment of a Post in WordPress? @MattRaines 感谢链接,但这是它尝试过的东西,它对我不起作用。问题是我得到了“两个循环”。也许我在我现有的 foreach 循环中从上面错误地实现了它。你有一个例子吗? 那么您是否正在尝试获取此$myposts 循环中每个页面的最新评论? 【参考方案1】:

如果我的理解正确,您正在尝试获取特定页面的最新评论。所以,我会使用get_commentsDocs 函数。

$comment_args = array(
  'post_type' => 'page',
  'post_id'   => get_the_id(), // Or if you're in a page loop, you could use $post->ID instead of get_the_id()
  'number'    => 1,
);

$latest_comment = get_comments($comment_args);

// This would give you the latest comment
print_r($latest_comment[0]->comment_content);

// This would give you the comment date
print_r($latest_comment[0]->comment_date);

// This would give you the comment date in gmt
print_r($latest_comment[0]->comment_date_gmt);

请注意,'number' =&gt; 1, 将检索最新评论。


因此,您的整个带有页面循环的代码将是这样的:

$args = array(
    'posts_per_page' => 10,
    'post_type'      => 'page',
);

$query = new WP_Query($args);

while ($query->have_posts()) 
    $query->the_post();

    the_title();

    $comment_args = array(
        'post_id'   => get_the_ID(),
        'number'    => 1,
    );

    $latest_comment = get_comments($comment_args);

    ?>
    <div class="comments"><?php echo $latest_comment[0]->comment_date; ?></div>
    <hr>
    <?php
;

wp_reset_postdata();

结果如下:

让我知道这是否是您想要的!

【讨论】:

哇,谢谢(也为了解释)!给我几分钟,我试试看! 它就像魅力一样 - 你拯救了我的一天 - 真的很棒!

以上是关于循环获取 Wordpress 页面的“最新评论日期”的主要内容,如果未能解决你的问题,请参考以下文章

WordPress 在循环外获取页面 ID

在 foreach 循环中获取 ACF 字段数据 - wordpress

wordpress 多循环问题

WordPress基础:get_page_link获取页面地址

wordpress获取当前分类的ID

wordpress 循环显示文章问题