カスタム投稿のページ送りで2ページ目以降が表示されない
-
カスタムポストタイプを利用して、複数の投稿タイプを混ぜた投稿一覧の
アーカイブを表示しているページで、
ページ送りがうまくいきません。以下、設定
・カスタムポストタイプのポストタイプを
one,two,threeとしました
・それぞれのポストタイプから作成されたすべての記事一覧を作りたいため、
post_typeをポストタイプの配列としました
・カスタムリライトスラッグは別名(それぞれichi,ni,san)としています
・query_postsだとバグる可能性があるようなのでWP_queryで実装
ソースはこういう感じです<?php
$paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;$args = array(
‘paged’ => $paged,
‘posts_per_page’ => 10,
‘post_type’ => array(‘one’,’two’, ‘three’)
);$wp_query = new WP_Query($args);
?><?php
////////////////////////////
//一覧の繰り返し処理
////////////////////////////if (have_posts()) : // WordPress ループ
$count = 0;
while (have_posts()) : the_post(); // 繰り返し処理開始
$count += 1;
if ( is_list_style_bodies() ) {//一覧表示スタイルが本文表示
get_template_part(‘entry-body’);//一覧表示スタイルが本文表示の場合
} else {//サムネイルカードか、大きなサムネイルカードの場合
//一覧表示スタイルがカードor大きなサムネイルカード表示の場合
get_template_part(‘entry-card’);
}//トップページ中間に広告をできるかどうか(表示するかどうか)
if ( is_ads_list_in_middle_on_top_page_enable($count) ) {
get_template_part(‘ad’);
}endwhile; // 繰り返し処理終了 ?>
<div class=”clear”></div><?php else : // ここから記事が見つからなかった場合の処理 ?>
<div class=”post”>
<h2>NOT FOUND</h2>
<p>お探しの記事は見つかりませんでした。</p>
</div>
<?php
endif;
?>
</div><!– /#list –>
<?php if (!is_home() || is_ads_top_page_visible()) ://メインページ以外は広告を出す
get_template_part(‘ad-article-footer’ );
endif; ?><!–ページャー–>
<?php
//プラグインを使ったとき
if(function_exists(‘wp_pagenavi’)) { wp_pagenavi(); } ?><div class=”pager”>
<?php
//ソースかいて実装のとき
global $wp_rewrite;
$paginate_base = get_pagenum_link(1);
if(strpos($paginate_base, ‘?’) || ! $wp_rewrite->using_permalinks()){
$paginate_format = ”;
$paginate_base = add_query_arg(‘paged’,’%#%’);
}
else{
$paginate_format = (substr($paginate_base,-1,1) == ‘/’ ? ” : ‘/’) .
user_trailingslashit(‘page/%#%/’,’paged’);;
$paginate_base .= ‘%_%’;
}if (wp_is_mobile()) {
$mid_size = 1;
} else {
$mid_size = 3;
}echo paginate_links(array(
‘base’ => $paginate_base,
‘format’ => $paginate_format,
‘total’ => $wp_query->max_num_pages,
‘mid_size’ => $mid_size,
‘current’ => ($paged ? $paged : 1),
‘prev_text’ => ‘<i class=”fa fa-caret-left fa-fx”></i> ’,
‘next_text’ => ‘ <i class=”fa fa-caret-right fa-fx”></i>’,
)); ?></div>
<!– /.pager –>
・一ページ目は正常に表示されます
・二ページ目以降だと404に飛びます
そのときのURLは
http://example.com/page/page/3/
といった感じです
・http://example.com/page/page/1/
と手入力するとホーム(http://example.com)へとばされます
・http://example.com/page/?page=1
と手入力するとアーカイブが表示されますが、
http://example.com/page/?page=2 としても
http://example.com/page/?page=3 としても
同じ記事がでてきます
(どれでも最新の10件がでます)
・プラグインWP_pagenaviで
以下のソースを追記して実装しても
同じ現象が起こります
・設定>表示設定>一ページに表示する最大投稿数を1としても同様
(関係あるかわかりませんが。。。)post_typeに新たに配列を読み込ませているのを、
リライトするときにうまくその情報を送れていない気がするのですが、
具体的にどうかけいばいいのかわからずにいます
(原因は違うかもしれませんが。。。)PHPはかけないので、検索して考えてそれっぽいことを実装しています。
急ぎでどうしてもうまくいくようにしたいので
お手数ですが、なにかこうしたら?というものがある方、
どうぞよろしくお願いいたします。
トピック「カスタム投稿のページ送りで2ページ目以降が表示されない」には新たに返信することはできません。