允许用户更改每页的帖子

时间:2012-09-02 作者:simon

如何允许用户选择每页显示的帖子数量?我希望它与it\'s done on this site: 每页15、30、50(见页码右侧的页面底部)。

2 个回复
SO网友:M-R

这可能不是最好的解决方案,但确实有效。需要在函数中添加以下代码。php。

add_filter(\'query_vars\', \'parameter_queryvars\' ); // Let WP accept the query argument we will use
function parameter_queryvars( $qvars )
{
    $qvars[] = \'posts_per_page\';
    return $qvars;
}
add_action( \'pre_get_posts\', \'change_post_per_page\' ); // Filter posts based on passed query variable if set
function change_post_per_page( $query ) {
    global $wp_query;
    if ( !empty($wp_query->query[\'posts_per_page\']) && is_numeric($wp_query->query[\'posts_per_page\'])) {
        $query->set( \'posts_per_page\', $wp_query->query[\'posts_per_page\'] );
    }
}
要打印分页,(可能需要根据您的场景进行更改)

<div class="paging-per-post">
        <a href="http://<?php echo $_SERVER["HTTP_HOST"] . array_shift(explode(\'?\',$_SERVER["REQUEST_URI"])) ?>?posts_per_page=15">15</a>
        <a href="http://<?php echo $_SERVER["HTTP_HOST"] . array_shift(explode(\'?\',$_SERVER["REQUEST_URI"])) ?>?posts_per_page=30">30</a>
        <a href="http://<?php echo $_SERVER["HTTP_HOST"] . array_shift(explode(\'?\',$_SERVER["REQUEST_URI"])) ?>?posts_per_page=50">50</a>
</div>

SO网友:Hignesh Hirani

@西蒙

有一个这样的黑客可用看看这个,http://wordpress.org/extend/plugins/boones-pagination/

您可以使用上述插件或该插件的每个作者的代码类。

结束

相关推荐

Alphabetical search

可以创建字母顺序搜索,如下所示:A | B | C | D |等每个字母都是一个链接,因此当点击时,它会显示所有以“a”或“B”等开头的帖子。如果是这样,我该怎么做?