如何通过URL显示某个类别中特定数量的帖子

时间:2015-03-09 作者:T. Thomas

我试图链接到我博客中的特定类别,但限制列出的帖子数量。

我可以通过“www.example.com/?cat=6”链接到特定类别,在浏览完网站(wordpress.org和本网站)后,我想我可以用“www.example.com/?cat=6和showposts=5”来限制帖子数量,但。。。

“&;showposts=5”没有返回我期望的结果,我是否正确使用了“showposts”?有更好的吗?

如果没有,我如何构建我的url以仅显示特定数量的帖子?

虽然我可以访问主题和循环,但我不想编辑它,也不想安装一些插件,我的提要很完美,我只想为这种类型的用例建立一个链接。

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

showposts 是的别名posts_per_page, 这是一个私有查询变量,意味着不能从查询字符串中设置它。您可以注册自己的查询var并将其映射到posts_per_page 在a中pre_get_posts 行动这可以放在你的主题中functions.php 并可用于任何主查询。

// add a new query var to the list of known query vars
function wpd_custom_posts_queryvar( $vars ){
    $vars[] = \'wpd-num\';
    return $vars;
}
add_filter( \'query_vars\', \'wpd_custom_posts_queryvar\' );

// hook pre_get_posts and set posts_per_page
// if it\'s the main query and our custom query var is set 
function wpd_custom_posts_number( $query ){
    if( $query->is_main_query() && $query->get( \'wpd-num\' ) ){
        $query->set( \'posts_per_page\', $query->get( \'wpd-num\' ) );
    }
}
add_action( \'pre_get_posts\', \'wpd_custom_posts_number\' );

结束

相关推荐

如何使用PRE_GET_POSTS挂接和IS_POST_TYPE_ARCHIVE更改查询

需要:我正在尝试使用GET参数过滤自定义帖子类型归档,以便根据帖子标记的术语将帖子分为两组。如何:到目前为止,我决定使用pre_get_posts 钩子,在呈现此自定义帖子类型的存档时更改查询。问题是:我使用的代码不起作用。我似乎找不到问题,但它肯定不起作用。也许有人对这个钩子有更多的经验可以告诉我我错过了什么:function event_type_filter( $query ) { if ( is_post_type_archive( \'event\' ) ) {