我为我的模板构建了2个自定义帖子(消防员和马里奥),我为他们每个人构建了2个分类法(type-mario和术语游戏,类型消防员和术语游戏) 目前我使用query_posts()显示与他们的术语链接的两个帖子的标题,但我喜欢使用get_posts()代替。
<?php query_posts( array( 'type-mario' => 'games', 'showposts' => 10 ) ); ?>
<p>Mario games</p>
<?php while ( have_posts() ) : the_post(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<h2><?php the_title(); ?></h2>
</div>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
<?php query_posts( array( 'type-firemen' => 'games', 'showposts' => 10 ) ); ?>
<p> Firemen Games </p>
<?php while ( have_posts() ) : the_post(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<h2><?php the_title(); ?></h2>
</div>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
它运作良好,但我很确定使用get_posts()来显示这2个标题帖更好,但我不知道该怎么做。
PS:请记住,有2个海关帖子,而不是经典帖子,我必须为每个帖子建立一个分类标准,因为这个帖子相同...感谢您的建议。
这是一个解决方案:
<?php $posts = new WP_Query(array(
'taxonomy' => 'type-mario',
'term' => 'games',
'posts_per_page' => 10
)); ?>
<p>Mario games</p>
<?php while ( $posts->have_posts() ) : $posts->the_post(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<h2><?php the_title(); ?></h2>
</div>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
答案 0 :(得分:0)
如果您看过get_posts()
上的文档,则其功能类似于query_posts()
。
两者之间的区别在于,使用query_posts()
它将修改全局变量,以便您可以使用“_...”全局函数。
使用get_posts()
它将返回一个post对象数组,你可以循环通过它而不会影响当前循环(如果有的话)。此外,您可以遍历多个帖子集。
注意:在WordPress示例中,使用了setup_postdata($post)
函数,它将post对象添加为全局,以便您可以使用“the _...”全局函数(但这样做会影响循环)。
注意: get_posts()
应使用与query_posts()
相同的参数。