web-dev-qa-db-ja.com

作者のためのページ付け404エラーがauthor.phpにクエリを投稿

私はすべての投稿を作者によってクエリし、それらをauthor.phpページでページ付けします。私はWPページあたりのデフォルトのブログ設定をめちゃくちゃにしてみましたが、それは役に立ちません。私はここで他の記事を見て、どちらかの解決策を見つけることができました。これは私のカテゴリページとカスタムテンプレートページで機能します(著者属性を除く)。

これが私の質問に対するものです。

if (get_the_author_meta( 'ID' )) {
  $authorID = get_the_author_meta( 'ID' );
}
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$args = array(
    'post_type' => 'post',
    'author'=>$authorID, 
    'orderby'=> 'date',
    'showposts'=>'5',
    'paged'=>$paged
);
$query = new WP_Query( $args );

運が悪くてもquery_posts()を試してみました。

クエリ自体は機能しますが、ページ区切りは壊れます。何か案は?

2
dragonfeet2012

そのページには既にクエリがあります。 author.phpオプションのテンプレートファイル で、もしあれば、WordPressは著者アーカイブに使用します。そのページに別のクエリを作成する必要はありません。両方のクエリが同じpagedクエリ変数を使用するため、少なくとも部分的には、クエリとネイティブクエリが衝突していると思います。

クエリについて何か変更する必要がある場合は、新しいクエリを作成するのではなく、おそらくそのページのメインクエリを中断する必要があります。

function alter_author_wpse_84696() {
  if (!is_author()) return false;
  global $wp_query;
  $wp_query->set('posts_per_page', 10);
  $wp_query->set('order', 'ASC');
}
add_action('pre_get_posts','alter_author_wpse_84696');
3
s_ha_dum