我需要在template-part !!
中使用the_title()和其他函数在我的index.php中,我有:
$args=array(
'orderby' => 'post_date',
'order' => 'DESC'
);
$recent_posts =wp_get_recent_posts( $args,ARRAY_A);
foreach ($recent_posts as $post) {
setup_postdata($post);
echo "<h1>$post[ID]</h1>";
the_title();
get_template_part( 'template-parts/post/content', 'list' );
}
回声显示正确的后ID。 但是,the_title():总是显示“hello world”(第一篇文章), 因此,我的模板部分只有第一个Post Object,它不是来自$ recent_posts。
出了什么问题?
答案 0 :(得分:0)
尝试下面的foreach代码:
foreach ($recent_posts as $post) {
setup_postdata($post);
echo "<h1>$post[ID]</h1>";
echo $post["post_title"];
get_template_part( 'template-parts/post/content', 'list' );
}
答案 1 :(得分:0)
echo $post["post_title"];
更多信息: https://codex.wordpress.org/Function_Reference/wp_get_recent_posts
答案 2 :(得分:0)
首先,在帖子查询中传递更多参数,例如
'post_type' => 'post',
'post_status' => 'publish',
澄清您希望显示帖子的帖子类型。 在循环内部改变,
the_title();
成,
$post->post_title or $post['post_title']
取决于通过对象或数组的数据。
我希望这对你有用。
答案 3 :(得分:0)
好的,我找到了。 对于那些理解我真实问题的人:
不要使用wp_get_recent_posts。 代替:
$the_query = new WP_Query( 'posts_per_page=10' );
while ($the_query -> have_posts()) {
$the_query -> the_post();
get_template_part( 'template-parts/post/content', 'list' );
}