如何向wp_Query添加分页

时间:2013-09-24 作者:graphical_force

我有一个自定义循环,我正试图将其分为几个页面,但我无法显示下一个和上一个链接。这是我的代码:

                <?php

                    if ( get_query_var( \'paged\' ) )
                        // On a paged page.
                        $paged = get_query_var( \'paged\' );

                    else if ( get_query_var( \'page\' ) )
                        // On a "static" page.
                        $paged = get_query_var( \'page\' );

                    else
                        // Default.
                        $paged = 1;

                    $args = array(
                        \'post_type\'      => \'property\',
                        \'orderby\'        => \'meta_value\',
                        \'meta_key\'       => \'random_775\',
                        \'order\'          => \'ASC\',
                        \'paged\'          => $paged,
                        \'posts_per_page\' => 10,
                    );
                ?>

                <?php $count = 0;

                    $loop = new WP_Query( $args );
                    while ( $loop->have_posts() ) : $loop->the_post(); ?>

                        <?php next_posts_link(\'Next\' ); ?>
                        <?php previous_posts_link(\'Back\' ); ?>
我不确定我做错了什么,也不确定是否有人能对此有所了解。

提前感谢!

2 个回复
SO网友:Charles Clarkson

页面链接函数取决于$paged 全局变量。因此,我们需要更新该变量以及自定义查询中的参数。

如果我们在“静态”头版\'paged\' 查询变量应未定义,并且\'page\' 可以定义查询变量。

如果两个查询变量都没有定义,我们可能在第1页。

// Only needed if this code is called via a function.
global $paged;

if ( get_query_var( \'paged\' ) )
    // On a paged page.
    $paged = get_query_var( \'paged\' );

else if ( get_query_var( \'page\' ) )
    // On a "static" page.
    $paged = get_query_var( \'page\' );

else
    // Default.
    $paged = 1;

$args = array(
    \'post_type\'      => \'property\',
    \'orderby\'        => \'meta_value\',
    \'meta_key\'       => \'random_775\',
    \'order\'          => \'ASC\',
    \'paged\'          => $paged,
    \'posts_per_page\' => 10,
);
代码改编自Pagination WordPress Codex页面。

编辑:

$count = 0;

$loop = new WP_Query( $args );
while ( $loop->have_posts() ) :
    $loop->the_post();

    next_posts_link( \'Next\', $loop->max_pages );
    previous_posts_link( \'Back\' );

SO网友:Eric Holmes

为了简单起见,我强烈建议使用WP PageNavi 插件。它很漂亮,而且非常容易实现。在循环下方,只需添加wp_pagenavi(); 你就完了。

您现在输入的代码是用于下一篇/上一篇文章的,这将在单个文章页面上使用。你要找的是posts_nav_link(), 还解释了here.

结束

相关推荐

How to use/enable Pagination?

我正在创建一个快捷码,以显示WordPress中具有特定配置文件的用户列表。但我无法启用或显示分页。我的网站上有25个用户,希望每页显示5个配置文件用户,并包括分页。我为学生档案添加了一个新角色student和多个使用高级自定义字段的自定义字段。因此,我需要显示一个学生列表作为适当的字段。到目前为止,问题是我无法启用的分页。下面是我的代码示例:add_shortcode(\'list-users\', \'list_users\'); function list_users($atts)