我有这个功能和帖子的链接:
<?php
foreach ($results as $id) {
$post = &get_post( $id->ID );
setup_postdata($post);
<li><a <?php href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>
</li>
<?php
} ?>
我想要做的是:如果有评论今天发布,请向我显示已发布的第一条评论的链接。例如:如果今天有4条评论,我想要链接到第一条评论,而不是像现在这样的永久链接。
我试过用这个:
<a <?php href="<?php the_permalink(get_comments->$post_id) ?>">postname</a>
和comment_post_ID
之类的变体,但我无法让它发挥作用。我做错了什么,我该怎么办?
答案 0 :(得分:0)
我认为您可能会对对象和功能感到困惑(或者您复制/粘贴错误)。当您尝试执行get_comments-&gt; $ post_id时,由于get_comments不是对象get_comments is a function that accepts parameters,因此无效。看看我在下面做了什么,因为它可以帮到你:
<?php
foreach ($results as $id) {
$post = &get_post( $id->ID );
setup_postdata($post);
$args = array('post_id' => $id->ID, 'number' => 1);
$lastComment = get_comments($args);
if (!empty($lastComment[0]) and $lastComment[0]->comment_date > date('Y-m-d 00:00:00')){
echo '<li><a href="'.get_comment_link($lastComment[0]).'">'.the_title().'</a></li>';
}
?>
get_comments()将采取一堆争论,在上面我传递了postID和1的计数,所以它只拉出最后一条评论。它仍然会提取今天没有发表的评论,所以如果评论是在今天午夜之后发布的话,我添加的if条件应该只回应它。