私がやろうとしていること:
WP_Query
single-custom-post-type.phpテンプレートファイルでページネーションを設定する
私がやった事
1)「authors」という投稿タイプを作成しました。その投稿タイプ内の各投稿は個々の著者です。
2)標準の編集投稿画面ページには、作成者カスタム投稿タイプからのすべての投稿(作成者)をリストするドロップダウンが含まれています。
3)ドロップダウンからの著者メタデータを使用してすべての投稿を照会するsingle-authors.phpテンプレートを作成したため、結果は同じ著者が割り当てられた投稿のリストになります(アーカイブのようなもの):
<?php
// set the "paged" parameter (use 'page' if the query is on a static front page)
global $paged;
/*We need this here to add and maintain Pagination if Template is assigned to Front Page*/
if ( get_query_var( 'paged' ) ) {
$paged = get_query_var('paged');
} elseif ( get_query_var( 'page' ) ) {
$paged = get_query_var( 'page' );
} else {
$paged = 1;
}
$args = array(
'posts_per_page' => 10,
'meta_key' => 'author_select',
'meta_value' => $author_id,
'paged' => $paged,
);
$temp = $wp_query;
$wp_query = NULL;
$wp_query = new WP_Query($args);
?>
<?php if( $wp_query->have_posts() ) : ?>
<?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
<?php // Successfully outputs the results of the above query, so I've omitted the code from this example. ?>
<?php endwhile; ?>
<div class="single_navigation">
<?php if( get_adjacent_post( false, '', true ) ) { ?>
<span class="prev"><?php previous_post_link( '< %link' ) ?></span>
<?php } ?>
<?php if( get_adjacent_post( false, '', false ) ) { ?>
<span class="next"><?php next_post_link( '%link >' ) ?></span>
<?php } ?>
</div><!--/single navigation-->
<?php endif; ?>
<?php
$wp_query = null;
$wp_query = $temp;
wp_reset_query();
?>
私が立ち往生していること
ページネーションリンクは表示されません。私はいくつかの調査を行い、$wp_query
変数を使用していることを発見しましたが、クエリ変数をに変更$wp_query
するとリンクが表示されましたが、クリックしても何も起こりませんでした。
私が間違っている場所は何ですか?
編集:
いくつかの質問に答えるために、クエリはクエリを実行している投稿を正常に出力します。$ author_idには、このコードスニペットに含まれていない値が既にあります。同様に、whileループ内の実際のコンテンツ出力は省略しました。その部分は問題ではないからです。問題は、この単一の投稿に既に存在するコンテンツをページ分割する必要があることです。
この機能の目的は、投稿にカスタム作成者(ビルトインユーザーシステムの外部)を許可することであり、このテンプレートの目的は、特定の作成者(既に機能している)のすべての投稿を出力することです。
the_title()
'meta_value' => $author_id
言及したドロップダウンリストから充填されていますか?また、ドロップダウンから各著者を選択すると、最初の10件の投稿が正しく表示されますか?
$author_query->have_posts()
が返さtrue
れ、$author_query
実際に投稿が含まれていることを確認しましたか?