如何才能在使用GET_POSTS函数查询帖子时获得想要的分页

时间:2013-06-27 作者:diligent

我正在使用WP3。我有一个post_list.php 这将显示所有的职位订单,按职位日期描述。一切正常,除了pagination.

我有15个帖子,为了测试的目的,我想每个页面显示2个帖子,其他人将显示下一页像这样。

Prev 1 2 3 4 5 Next
post\\u列表的某些部分。php

define(\'WP_USE_THEMES\', false);
require_once \'../blog/wp-load.php\';

$query_args = array(
    \'orderby\' => \'date\',
    \'order\' => \'DESC\',
    \'post_type\' => \'post\',
    \'post_status\' => \'publish\',
    \'posts_per_page\' => 2,
    \'offset\' => 0

);
$lateset_posts = get_posts($query_args);

<?php 
global $post;
foreach($lateset_posts as $post) :
    // do something
    the_content();
<?php endforeach;?>

<?php next_post_link(); previous_post_link(); ?>
是的,正如你所看到的,每个页面都显示了我设置的2篇文章,但我无法按照我的意愿进行分页。相反,它显示了我这样

Post1\'s title >> << Post2\'s title
如何获得下面这样的分页样式

Prev 1 2 3 4 5 Next
谢谢。

编辑:现在我使用paginate_links 函数,是的,我得到了我想要的。

$query_args = array(
    \'orderby\' => \'date\',
    \'order\' => \'DESC\',
    \'post_type\' => \'post\',
    \'post_status\' => \'publish\',
    \'posts_per_page\' => 2,
    \'offset\' => 0

);
$lateset_posts = get_posts($query_args);


$paging_args = array(
    \'base\'         => \'%_%\',
    \'format\'       => \'?paged=%#%\',
    \'total\'        => count($lateset_posts),
    \'current\'      => max(1, get_query_var(\'paged\')),
    \'end_size\'     => 1,
    \'mid_size\'     => 1,
    \'prev_next\'    => True,
    \'prev_text\'    => __(\'« Previous\'),
    \'next_text\'    => __(\'Next »\')
);
$lateset_posts_paging = paginate_links($paging_args);
我有15行,它是这样显示的

 1 2 3 .. Next
现在我在第一页,我想转到第二页,所以我单击数字2,我注意到url是:

http://localhost/x/post_list.php?paged=2
但在我点击它之后still in the first page, 数据也是前两行。我哪里错了,谢谢。

2 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

使用paginate_links. 它的本意就是这样。另外,普通分页功能如下next_posts_link (which I think you want instead of next_post_link) do not work reliably with custom queries, 但是next_post_linkprevious_post_link 自定义查询同样或更麻烦。

具有paginate_links 您需要传递大量数据,因此请仔细阅读法典。

SO网友:diligent

是的,我需要添加\'paged\' my的参数get_posts 作用

$query_args = array(
    \'orderby\' => \'date\',
    \'order\' => \'DESC\',
    \'post_type\' => \'post\',
    \'post_status\' => \'publish\',
    \'posts_per_page\' => 2,
    \'offset\' => 0,
    \'paged\' => get_query_var(\'paged\')

);

结束

相关推荐

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