get_posts
returns an array post对象的。您不能使用WP_Query
对象方法。即使可以,循环也会使用global
变量$wp_query
因为你没有告诉它做任何不同的事情。和showposts
早就不推荐使用了。换言之,您的代码在几个不同的方面被破坏或有缺陷。
你可以使用foreach
在阵列上循环。
$paged = (get_query_var(\'page\')) ? get_query_var(\'page\') : 1;
$posts = get_posts(array(
\'numberposts\' => 3,
\'paged\' => $paged,
));
// show results
foreach ($posts as $p) {
echo $p->post_title;
}
你可以打败全球
$wp_query
对象
$paged = (get_query_var(\'page\')) ? get_query_var(\'page\') : 1;
$wp_query = new WP_Query(array(
\'numberposts\' => 3,
\'paged\' => $paged,
));
// show results
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
the_title();
// display info about the post
}
}
或创建新的
WP_Query
对象:
$paged = (get_query_var(\'page\')) ? get_query_var(\'page\') : 1;
$my_query = new WP_Query(array(
\'numberposts\' => 3,
\'paged\' => $paged,
));
// show results
if ( $my_query->have_posts() ) {
while ( $my_query->have_posts() ) {
$my_query->the_post();
the_title();
// display info about the post
}
}
或者,可以在上创建一个过滤器
pre_get_posts
更改主查询。如果希望分页工作正常,这是最好的选择。
add_action(
\'pre_get_posts\',
function($qry) {
if ($qry->is_main_query()) {
$qry->set(\'posts_per_page\',3);
}
}
);