まず、やりたいことは普通の投稿ページのアーカイブ と カスタム投稿で作成したニュースのアーカイブと、カタログのアーカイブ
それぞれに表示件数が5件でページャーの表示です。
【現状】
CPT UIというプラグインを利用して、newsとcatalogという2つのカスタム投稿を作成しています。
例えば、newsの場合archive-news.phpをテンプレートとして、固定ページで選択して表示する形で作っています。
(タイトルやディスクリプションなどを固定ページで編集したいため)
また、CPT UIで作成したスラッグもnewsで固定ページのURLもnewsです。
いろいろ検索して、数々の方法を試したのですが、2ページ目をクリックすると404になります。
URLは、
http://〇〇.com/news/
2ページ目は
http://〇〇.com/news/page/2/
という感じですが、404になります。
同じURLだとうまく動かないという情報もあったので、
固定ページの方のURLをnews-archiveに変更したりしましたが、同じでした。
カスタム投稿のパーマリンクは以下です。
http://〇〇.com/news/%post_id%/
http://〇〇.com/catalog/%post_id%/
試したタグの一例はこちらです。
php
1 2<?php 3/** 4* ページネーションHTML出力 5* 6* $limit ページあたりの表示上限数 7* $post_typed 投稿タイプのスラッグ 8*/ 9function pagenation($limit = 5, $post_typed = 'news') { 10 global $wp_rewrite; 11 global $paged; 12 global $wp_query; 13 14 // 検索条件 15 $query = array(); 16 if ($limit != 5) { 17 $query['posts_per_page'] = $limit; 18 } 19 if (count($query) != 0) { 20 $wp_query->query($query); 21 } 22 23 $wp_query->query(array( 24 'post_type' => $post_typed, 25 )); 26 $paginate_base = get_pagenum_link(); 27 28 if( strpos( $paginate_base, '?' ) || !$wp_rewrite->using_permalinks() ) { 29 $paginate_format = ''; 30 $paginate_base = add_query_arg( 'paged', '%#%' ); 31 } else { 32 $paginate_format = (substr( $paginate_base, -1, 1 ) == '/' ? '' : '/') . user_trailingslashit('page/%#%/','paged'); 33 $paginate_base .= '%_%'; 34 } 35 36 37 if( $paged < 2 ) { 38 $paged = 1; 39 } 40 $args = array( 41 'base' => $paginate_base, 42 'format' => $paginate_format, 43 'total' => $wp_query->max_num_pages, 44 'current' => $paged, 45 'show_all' => false, 46 'prev_next' => true, 47 'prev_text' => '«', 48 'next_text' => '»', 49 'type' => 'array', 50 ); 51 $pagenate_array = paginate_links($args); 52 53 // 配列がある場合のみ 54 if (is_array($pagenate_array) == TRUE) { 55 $pagenate .= '<div class="wp-pagenavi">'; 56 foreach ($pagenate_array as $key => $value) { 57 58 if (preg_match('/current/', $value) == TRUE) { 59 $class = ''; 60 } 61 else { 62 $class = ''; 63 } 64 65 // $value = "<span class=\"{$class}\">".$value.'</span>'; 66 // リンク追加 67 $pagenate .= $value; 68 } 69 70 $pagenate .= '</div>'; 71 echo $pagenate; 72 } 73} 74?>
そして、news-archive.phpに呼び出し用のタグ
php
1<?php 2pagenation($posts_per_page, 'news'); 3?>
こちらを入れました。
ページャー自体は表示されますが、404になります。
https://qiita.com/itsumoonazicode/items/a62c8d59696b65c61d2f
をそのまま利用させてもらいました。
他にもググって出てきた色々な方法を試しては見ているのですが、
すべて同じ動作になってしまいます。
知識不足で、参考から変更しなければいけないところができていない等、
初歩的なミスかもしれませんが、お助け頂けると
ありがたいです。
宜しくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/12 04:24
2019/12/12 04:33