2

我有这个功能和一个帖子的链接:

<?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 条评论,我想要指向第一条评论的链接,而不是像现在一样的永久链接。

我尝试使用 this:
<a <?php href="<?php the_permalink(get_comments->$post_id) ?>">postname</a>和 this like 的变体comment_post_ID,但我无法让它工作。我做错了什么,我该怎么办?

4

1 回答 1

0

我认为您可能对对象和功能感到困惑(或者您复制/粘贴错误)。当您尝试执行 get_comments->$post_id 时,这将不起作用,因为 get_comments 不是对象,get_comments 是一个接受参数的函数。看看我在下面做了什么,因为它可能会对你有所帮助:

<?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 条件应该只在评论是在今天午夜之后发布的情况下才会回应它。

于 2013-08-01T21:52:44.123 回答