循环显示错误的帖子标题

时间:2014-12-17 作者:Digital Brent

我正在构建自己的主题。我为我的博客设置了一个页面(带有我制作的模板),我只想显示我的一些帖子。它使用以下循环:

<?php
   query_posts(\'post_type=post\');
   if (have_posts()) {
      while (have_posts()) {
?>

<div class="blog_post">
   <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
   <div class="entry_date"><?php the_time(\'F jS, Y\') ?></div>
   <?php
      the_post();
      the_content();
   ?>
</div>

<?php
      }
   }
?>
我的帖子标题分别是“第一篇、第二篇、第三篇和第四篇”。当这些帖子显示在博客页面上时,它们会以正确的顺序显示,但帖子的标题不正确。第一篇文章的标题是:“第二篇文章”。第二篇文章的标题是:“第三篇文章”,依此类推,直到最后一篇(最近的)文章的标题是:“博客”(页面标题)。标题怎么搞砸了?

What I\'ve Tried:在我来这里之前,我已经对此做了很多研究。我尝试改用get\\u the\\u title(),但这导致没有显示标题。我还尝试过使用\\u title\\u attribute()但没有成功。我也明白,我不应该在这个循环中使用query\\u posts,但我不确定在这种特殊情况下使用哪种方法来获取帖子。不过,我读到的大多数信息都不清楚,似乎无法解决这个问题。

非常感谢您的帮助。

1 个回复
最合适的回答,由SO网友:Howdy_McGee 整理而成

欢迎WordPress堆栈交换,祝贺您的第一篇帖子!首先,you may not want to use query_posts() here. 第二关-the_post() 需要在之前the_title() 因为它设置了所有POST功能,例如the_title(), the_permalink() 等等,并在while循环中对下一篇文章进行排队。您的循环应如下所示:

<?php
   query_posts(\'post_type=post\');
   if (have_posts()) {
      while (have_posts()) { the_post();
?>

<div class="blog_post">
   <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
   <div class="entry_date"><?php the_time(\'F jS, Y\') ?></div>
   <?php the_content(); ?>
</div>

<?php
      }
   }
?>
希望这能有所帮助,这里有一些关于Wordpress循环和设置post数据的更多信息。

Read More about the_post().

Read More about The Loop.

结束

相关推荐

Order posts by condition

我需要得到15个帖子。如果有带标签的featured, 我希望他们是第一个。如果没有,我希望其余的是随机帖子。我的想法是根据条件对帖子进行排序tag=featured 描述和随机。我可以用query_posts()?我的失败尝试:query_posts(\'posts_per_page=15&orderby=((tag=featured),rand)&order=desc\'; 谢谢你。