为什么WordPress中的分页自定义条件不起作用?
我的任务是在分页的第一页上显示 6 个帖子,然后在表单的category-news.php 的类别页面上显示 9. 分页。
这是我在functions.php 中的代码:
function limit_posts_per_home_page()
{
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$first_page_limit = 6;
$limit = get_option('posts_per_page');
if( is_admin() ) {
return;
}
if ( is_category('6') )
{
if ($paged == 1)
{
$limit = $first_page_limit;
}
else
{
$offset = $first_page_limit + (($paged - 3) * $limit);
set_query_var('offset', $offset);
}
}
set_query_var('posts_per_archive_page', $limit);
set_query_var('posts_per_page', $limit);
}
add_filter('pre_get_posts', 'limit_posts_per_home_page');
但它不起作用。我在分页页面上看到与设置中设置的帖子数量相同的帖子。 所有条件均已满足。在最后一个条件(if($paged == 1))之后,我看到正确的值$limit=6。事实证明错误就在这里 set_query_var 我不太明白如何在这里融化它
My task is to display 6 posts on the first page of the pagination, and then 9. Pagination on the category page of the form category-news.php .
Here is my code in functions.php:
function limit_posts_per_home_page()
{
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$first_page_limit = 6;
$limit = get_option('posts_per_page');
if( is_admin() ) {
return;
}
if ( is_category('6') )
{
if ($paged == 1)
{
$limit = $first_page_limit;
}
else
{
$offset = $first_page_limit + (($paged - 3) * $limit);
set_query_var('offset', $offset);
}
}
set_query_var('posts_per_archive_page', $limit);
set_query_var('posts_per_page', $limit);
}
add_filter('pre_get_posts', 'limit_posts_per_home_page');
But it doesn't work. I see the same number of posts on pagination pages that are set in the settings.
All conditions are met. After the last condition(if ($paged == 1)), I see the correct value $limit=6. it turns out the error is somewhere here set_query_var And I don't quite understand how to melt it here
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论