Wordpress 如何为自定义帖子类型的标签启动wp_查询?
我想获取所有带有“热”标签的文章类型帖子Wordpress 如何为自定义帖子类型的标签启动wp_查询?,wordpress,Wordpress,我想获取所有带有“热”标签的文章类型帖子 我正在使用下面的查询,但它返回所有post 查询帖子(数组('posts\u per\u page'=>-1,'post\u type'=>'article\u type','order'=>'ASC','tags'=>数组('hot')); 帮帮我,提前谢谢 改用 至于你的代码,没有所谓的“标签”。如果要查询多个标记,请使用“”中的“标记”。如果没有,请使用'tag'。本例在中使用了'tag\uu: <?php $q = new WP_Qu
我正在使用下面的查询,但它返回所有post
查询帖子(数组('posts\u per\u page'=>-1,'post\u type'=>'article\u type','order'=>'ASC','tags'=>数组('hot'));
帮帮我,提前谢谢
改用 至于你的代码,没有所谓的“标签”。如果要查询多个标记,请使用“”中的“标记”。如果没有,请使用
'tag'
。本例在中使用了'tag\uu:
<?php
$q = new WP_Query(array(
'posts_per_page' => -1,
'post_type'=>'article_type',
'order' => 'ASC',
'tag__in'=>array('hot')
));
if($q->have_posts()) : while($q->have_posts()) : $q->the_post();
//Post stuff.....
endwhile;endif;
?>
不要使用查询期间。query_posts和wp_query都会影响全局变量。改用get_posts,这样您就不必担心您的查询会影响应用程序/主题的其他部分
<?php
$posts = get_posts(array(
'posts_per_page' => -1,
'post_type'=>'article_type',
'order' => 'ASC',
'tag__in'=>array('hot')
));
foreach ($posts as $post) {
setup_postdata($post);
// post stuff
}
?>
或者,如果您不想干扰$post global,可以重命名您的值。这里需要注意的是,您不能使用setup_postdata(),因此必须使用id获取值。例如:
<?php
$posts = get_posts(array(
'posts_per_page' => -1,
'post_type'=>'article_type',
'order' => 'ASC',
'tag__in'=>array('hot')
));
foreach ($posts as $pst) {
echo get_the_title($pst->ID);
}
?>
在示例2中,您也不需要重置查询。而不是在wp\u查询中使用tag=使用post\u tag=这肯定会解决您的问题。您可以在循环通过wp\u查询之后使用wp\u reset\u postdata(),这样全局$wp\u查询就保持不变。在您看来,它们都会影响全局$post变量。但只有query_posts会影响全局$wp_query变量,这反过来会影响大量其他内容。使用get_posts是一个完全可行的选择,但是get_posts函数本身get_posts实际上不必影响全局$post变量。如果您使用foreach($someposts as$somepost),您可以在不干扰$post的情况下访问它,缺点是除了$post之外,您无法设置\u postdata任何内容,因此无法使用\u title()等,您必须使用get\u title($somepost->ID))。当然,通过定义一个新的wp_查询,您也可以做同样的事情,但是get_post为轻型应用程序提供了更快、更干净的用法。get_posts
只是wp_查询的包装函数。没有更快。如果说有什么区别的话,那就是性能受到了影响,但我们谈论的是一些时钟周期。请参阅的源代码以了解我所说的内容。至于清洁度,这只取决于您是否要维护面向对象或过程的编码模式。不要忘记循环后的wp_reset_postdata()。@StevenJones这是一个很好的建议,前提是页面上有多个循环。否则,重置并不是完全必要的。我总是假设已经运行了多个循环-您永远不知道某些插件(甚至核心)可能在做什么。如果您使用的是Tag Slug 1,则应该使用下面的参数。标记段塞和(阵列)-使用标记段塞。2.标记段塞(数组)-使用标记段塞。中的标记用于标记ID