Pages_Links()在自定义循环上输出额外的空页

时间:2013-06-26 作者:Bojana Šekeljić

我有一个自定义循环:

$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$works = new WP_Query(\'category_name=work&posts_per_page=9&paged=\' . $paged); 
分页输出3页,第一页有9个帖子,这也是帖子总数,第2页和第3页没有帖子(如果没有帖子,应该没有页面,对吗?)

这是我的paginate_links():

<?php elseif ( $wp_query->max_num_pages > 1 && ( is_home() || is_archive() || is_search() || is_category() ) ) : // navigation links for home, archive, and search pages ?>

    <?php 
        global $wp_query;

    $big = 999999999;

    echo paginate_links( array(
        \'base\' => str_replace( $big, \'%#%\', esc_url( get_pagenum_link( $big ) ) ),
        \'format\' => \'?paged=%#%\',
        \'prev_text\' => \'\',
        \'next_text\' => \'\',
        \'current\' => max( 1, get_query_var(\'paged\') ),
        \'total\' => $wp_query->max_num_pages
    ) );

    ?>

<?php endif; ?>
在默认循环中,一切正常。

2 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

您使用您的自定义WP_Query 查询帖子,但在分页时使用全局$wp_query 变量,其中包含不同的查询。

您应该使用自定义查询变量$works 在分页中,或更改全局$wp_query 分页函数调用之前的变量。

由于您使用通用函数来输出分页,所以第二种方法会更好/更容易。这样做:

global $wp_query;
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$works = new WP_Query(\'category_name=work&posts_per_page=9&paged=\' . $paged);

$original_query = $wp_query;  // store original query for later use
$wp_query = $works;  // overwrite it with your custom query

... your code

... your pagination code

$wp_query = $original_query;  // restore original query

SO网友:kaiser

只需使用您的自定义WP_Query/$works 对象访问中的数据paginate_links() 还有参数。

paginate_links( array(
    \'base\'      => str_replace( 99999999, \'%#%\', esc_url( get_pagenum_link( 99999999 ) ) ),
    \'format\'    => \'?paged=%#%\',
    \'prev_text\' => \'\',
    \'next_text\' => \'\',
    \'current\'   => max( 1, $works->get( \'paged\' ) ),
    \'total\'     => $works->max_num_pages
) );

结束

相关推荐

Wordpress Pagination Problem

我想在wordpress索引中设置分页。php,但它不工作。在我的索引中。php有3个显示自定义帖子的循环部分,我想在索引中的Blog/recent post部分循环中设置分页。php。这是索引中的代码。php<?php /** * @package WordPress * @subpackage Adapt Theme */ $options = get_option( \'adapt_theme_settings\' ); ?> &l