我有一个简单的自定义页面模板,其中包含一个简单的循环,显示指向相同类别ID = 11的帖子的链接。 但问题是,虽然链接工作正常,但所有帖子都显示相同的内容(第一篇文章的内容)。我无法解释为什么会这样。任何帮助都会非常感谢,谢谢。
这是自定义页面模板上的循环
<?php
$args = array('cat' => 11);
$category_posts = new WP_Query($args);
if($category_posts->have_posts()) :
while($category_posts->have_posts()) :
$category_posts->the_post();
?>
<a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
<?php
endwhile;
else:
// no posts.
endif;
?>
这就是我在single.php上的内容
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
答案 0 :(得分:0)
在执行任何其他操作之前,您应该在single.php中调用the_post()。
试试这个:
<?php the_post(); ?>
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
保留其他代码。它看起来应该按预期工作。
答案 1 :(得分:0)
通过一些试验和错误解决了问题。我在侧边栏中有一个帖子标题列表,需要使用wp_reset_query。
答案 2 :(得分:0)
在single.php中使用以下代码获取内容和标题。
while ( have_posts() ) : the_post();
the_title(); // For post title
the_content(); //For post content
endwhile;
答案 3 :(得分:0)
在你的自定义页面中使用它,我使用了wp_reset_postdata();
<?php
$args = array('cat' => 11);
$category_posts = new WP_Query($args);
if($category_posts->have_posts()) :
while($category_posts->have_posts()) :
$category_posts->the_post();
?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php
endwhile;
wp_reset_postdata();
else:
// no posts.
endif;
?>
在single.php上使用此
<?php
while(have_posts()):the_post();
the_title(); // For post title
the_content(); //For post content
ENDWHILE; ?&GT;