以下代码在第1页上显示8篇文章。然而,在所有后续页面上,仅显示7篇帖子。我认为这是因为第1页也会显示粘性帖子(其他页面不会显示)。
如何解决这个问题(我需要8篇帖子和所有页面)或者,贴子应该显示在所有页面上,而不仅仅是第一页我的原始代码:
$header_query = new WP_Query(
\'orderby=date&posts_per_page=7&paged=\'.$page_to_load.\'&ignore_sticky_posts=0
\');
EDIT: <执行Daniel Sachs的建议:
// query db
$header_query1 = new WP_Query(
array(\'post__in\' => get_option(\'sticky_posts\'), \'posts_per_page\' => 1));
$header_query2 = new WP_Query(
array( \'post__not_in\' => get_option( \'sticky_posts\' ), \'posts_per_page\' => 7, \'orderby\' => date, \'paged\' => $page_to_load));
//display
getPostsFromQuery($header_query1);
getPostsFromQuery($header_query2);
function getPostsFromQuery($header_query) {
if ( $header_query->have_posts() ) :
// loop etc.
}
我仍在寻找一个需要
only one database access? 对于替代解决方案
sticky posts only on page 1.
SO网友:Daniel Sachs
我建议使用两个查询,一个用于粘性帖子,另一个用于所有其他帖子。
首先:
query_posts(array(\'post__in\' => get_option(\'sticky_posts\'), posts_per_page => 1));
然后查询所有其他帖子
query_posts( array( \'post__not_in\' => get_option( \'sticky_posts\' ), posts_per_page => 7, orderby => date, paged => \'.$page_to_load.\'));
这应该可以做到。