WP自定义归档和分页

谁能解释一下这种看似奇怪的wordpress行为吗?
【WP自定义归档和分页】在设置-> 阅读下, 我的博客页面最多显示为10, 这是默认设置。
我有一个针对参展商的自定义帖子类型, 我已经创建了7种。
在参展商的存档页面archive-exhibitors.blade.php我只想一次显示2, 因此我使用以下代码:

@php global $wp_query; $posts_per_page = 2 ; $paged = get_query_var('paged'); if(!$paged){ $paged = 1; } $args = [ 'post_type' => 'exhibitors', 'posts_per_page' => $posts_per_page, 'paged' => $paged, ]; $wp_query = new WP_Query($args); @endphp@while (have_posts()) @php the_post() @endphp @include('partials.content-'.get_post_type()) @endwhile

现在, 当我去/ exhibitors /时, 我看到的是你所期望的前两个展览, 但是当我去/ exhibitors / page / 2 /时, 实际上是在获取404页面。
如果我将博客文章重置为最多显示为5, 则可以转到/ exhibitors / page / 2 /, 然后按照你的期望看到第3和第4篇文章, 但是现在第3页不起作用。如果我将博客文章最多设置为显示为1, 则只能使其正常工作。
我真的不明白为什么会发生这种情况, 就像发生了一些预查询一样, 它正在查看全局设置, 并重定向到404, 在这种情况下, 这是不正确的。
非常感谢任何帮助
#1我找到了解决方法, 而不是解决方案!我只是在这里发布, 这样可能会对其他人有所帮助。我我的functions.php我刚刚添加了这个:
function custom_posts_per_page( $query ) { if ( $query-> is_archive('exhibitors') ) { if(!is_admin()){ set_query_var('posts_per_page', 1); } } } add_action( 'pre_get_posts', 'custom_posts_per_page' );

这似乎会覆盖默认的博客文章以显示设置, 你可以基于每个post_type进行设置。请注意, 我正在检查它不是管理员页面, 因为这只是前端。
有谁知道更好的解决方案?

    推荐阅读