query_posts()
重击global
变量$wp_query
. 不要使用它:
注意:此功能不适用于插件或主题。如后文所述,有更好、性能更好的选项来更改主查询。query\\u posts()是一种过于简单且有问题的方法,通过将页面的主查询替换为新的查询实例来修改它。它效率低下(重新运行SQL查询),并且在某些情况下会彻底失败(尤其是在处理POST分页时)。任何现代的WP代码都应该使用更可靠的方法,比如使用pre\\u get\\u posts钩子。
http://codex.wordpress.org/Function_Reference/query_posts
请注意第一行:“
This function isn\'t meant to be used by plugins or themes.“”
有人已经提到get_posts()
, 这是完全正确的。然而,我倾向于WP_Query
对于几乎所有与后期检索相关的内容,我倾向于:
$args = array(
\'posts_per_page\' => 3,
\'cat\' => 1
);
$cp = new WP_Query( $args );
foreach ($cp->posts as $p) {
echo apply_filters(\'the_title\',$p->post_title);
}