pagination with sticky posts

时间:2011-06-17 作者:Ben

以下代码在第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.

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.\'));
这应该可以做到。

结束

相关推荐

Pagination with custom loop

我的问题可能是Pagination not working with custom loop, 但有一种不同。我使用自定义循环来显示flash游戏。我想按类别在游戏页面上分页。类别php:<?php if ($cat) { $cols = 2; $rows = 4; $paged = ((\'paged\')) ? get_query_var(\'paged\') : 1; $post_per_page = $cols * $rows; // -1 s