自定义查询的分页在最后一页上引发404个错误

时间:2015-02-03 作者:turtledropbomb

我正在使用自定义查询获取作者在中的所有CPT帖子author.php. 我有很多作者和很多内容,所以我使用wp pagenavi插件在这些帖子之间分页。

出于某种原因,分页在这些页面中的许多页面上给了我404个错误。抛出404s的页面总是分页的最后一页或最后两页。

比如说/author/steve/page/8/ 将起作用,而/author/steve/page/9//author/steve/page/10/ 不会。

我相信pagenavi插件可以处理\'paged\' => $paged, 但我也尝试在文件中设置$paged:$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;, 但没有区别。

我的global post\\u per\\u页面(在仪表板设置中)是每页6篇文章。正在更改\'posts_per_page\' => 4 在查询中\'posts_per_page\' => 6, 修复了404的问题,但更糟糕的是,我每页只需要显示4篇文章。

以下是我的疑问:

<?php
$author_id = get_the_author_meta( \'ID\' );

if ( have_posts() ) : 

the_post();
rewind_posts();

$author_details = $wp_query->get_queried_object();
$curauth = (isset($_GET[\'author_name\'])) ? get_user_by(\'slug\', $author_name) : get_userdata(intval($author));
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query();
$wp_query->query(array(
  \'post_type\'=> \'publikasjoner\',
  \'paged\' => $paged,
  \'posts_per_page\' => 4,
  \'meta_key\' => \'rapportnummer\',
  \'orderby\' => \'meta_value_num\',
  \'order\' => \'DSC\',
  \'author_name\' => $curauth->user_nicename
));

while ($wp_query->have_posts()) : $wp_query->the_post(); ?>

// Post content

<?php endwhile; endif;

if(function_exists(\'wp_pagenavi\')) { wp_pagenavi( array( \'query\' => $wp_query ) ); }

$wp_query = null; $wp_query = $temp; ?>

1 个回复
SO网友:TheDeadMedic

这正是皮特·古森所说的。您不仅给WordPress造成了巨大的破坏,还通过在主查询之上引入更多查询,在服务器上增加了不必要的负载:

function wpse_176933_custom_authors_archive( $wp_query ) {
    if ( $wp_query->is_main_query() && $wp_query->is_author() ) {
        $wp_query->set( \'posts_per_page\', 4 );
        $wp_query->set( \'post_type\', \'publikasjoner\' );
        $wp_query->set( \'meta_key\', \'rapportnummer\' );
        $wp_query->set( \'orderby\', \'meta_value_num\' );
        $wp_query->set( \'order\', \'DESC\' );
    }
}

add_action( \'pre_get_posts\', \'wpse_176933_custom_authors_archive\' );
将此挂钩添加到functions.php, 从中删除任何自定义查询author.php, 并用主循环函数替换自定义循环(the_loop(), the_post() 等等)。

结束

相关推荐

Pagination and Related Posts

是否可以对嵌入在single中的以下相关POST代码使用分页。我的主题的php。 <?php // for use in the loop, list 5 post titles related to first tag on current post $tags = wp_get_post_tags($post->ID); if ($tags) { $first_tag = $