我正在构建自己的主题。我为我的博客设置了一个页面(带有我制作的模板),我只想显示我的一些帖子。它使用以下循环:
<?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,但我不确定在这种特殊情况下使用哪种方法来获取帖子。不过,我读到的大多数信息都不清楚,似乎无法解决这个问题。
非常感谢您的帮助。
最合适的回答,由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.