循环获取 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' => $post->ID,
参数?还是您需要获取特定页面的最新评论?
@Ruvee 是的,我需要它用于特定页面,但我不想写入修复 ID,它应该通过“foreach 循环”和“$post->ID”动态获取它...
这能回答你的问题吗? How to Get Latest Comment of a Post in WordPress?
@MattRaines 感谢链接,但这是它尝试过的东西,它对我不起作用。问题是我得到了“两个循环”。也许我在我现有的 foreach 循环中从上面错误地实现了它。你有一个例子吗?
那么您是否正在尝试获取此$myposts
循环中每个页面的最新评论?
【参考方案1】:
如果我的理解正确,您正在尝试获取特定页面的最新评论。所以,我会使用get_comments
Docs 函数。
$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' => 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 页面的“最新评论日期”的主要内容,如果未能解决你的问题,请参考以下文章
在 foreach 循环中获取 ACF 字段数据 - wordpress