前提・実現したいこと
https://qiita.com/itsumoonazicode/items/a62c8d59696b65c61d2f
上記URLを参考に、カスタム投稿のページネーションについて実装ができたのですが
カスタム投稿の各カテゴリ記事を抽出した一覧にページネーションが上手くつけることができません。
ページ構成としては、infoというカスタム投稿の中に、「event」や「activity」などのカテゴリがあります。
「$not_in_category」の部分が違うのは何となくわかるのですが、どのように変更すればよいのかが分かりません…
「functions.php」、「カスタム投稿のカテゴリ記事一覧」それぞれどのように書き換えれば良いかご教示いただけますと幸いです。
よろしくお願いいたします。
該当のソースコード(functions.php)
php
1function pagenation($limit = NULL, $post_typed = 'posts', $not_in_category = NULL) { 2 global $wp_rewrite; 3 global $paged; 4 global $wp_query; 5 6 // 検索条件 7 $query = array(); 8 if ($limit != NULL) { 9 $query['posts_per_page'] = $limit; 10 } 11 if (count($query) != 0) { 12 $wp_query->query($query); 13 } 14 15 $wp_query->query(array( 16 'post_type' => $post_typed, 17 )); 18 19 if ($not_in_category != NULL) { 20 $wp_query->query(array( 21 'category__not_in' => $not_in_category, 22 )); 23 } 24 25 $paginate_base = get_pagenum_link(); 26 27 if( strpos( $paginate_base, '?' ) || !$wp_rewrite->using_permalinks() ) { 28 $paginate_format = ''; 29 $paginate_base = add_query_arg( 'paged', '%#%' ); 30 } else { 31 $paginate_format = (substr( $paginate_base, -1, 1 ) == '/' ? '' : '/') . user_trailingslashit('page/%#%/','paged'); 32 $paginate_base .= '%_%'; 33 } 34 35 36 if( $paged < 2 ) { 37 $paged = 1; 38 } 39 $args = array( 40 'base' => $paginate_base, 41 'format' => $paginate_format, 42 'total' => $wp_query->max_num_pages, 43 'current' => $paged, 44 'show_all' => false, 45 'prev_next' => true, 46 'prev_text' => '«', 47 'next_text' => '»', 48 'type' => 'array', 49 ); 50 $pagenate_array = paginate_links($args); 51 52 // 配列がある場合のみ 53 if (is_array($pagenate_array) == TRUE) { 54 $pagenate .= '<div class="wp-pagenavi">'; 55 foreach ($pagenate_array as $key => $value) { 56 57 if (preg_match('/current/', $value) == TRUE) { 58 $class = ''; 59 } 60 else { 61 $class = ''; 62 } 63 64 // $value = "<span class=\"{$class}\">".$value.'</span>'; 65 // リンク追加 66 $pagenate .= $value; 67 } 68 69 $pagenate .= '</div>'; 70 echo $pagenate; 71 } 72}
該当のソースコード(カスタム投稿のカテゴリ記事一覧)
php
1<?php $paged = get_query_var('paged') ? get_query_var('paged') : 1; 2 $args = array( 3 'posts_per_page' => 2, 4 'paged' => $paged, 5 'post_type' => 'info', 6 'suppress_filters' => false, 7 'tax_query' => array( 8 array( 9 'taxonomy' => 'info_cat', 10 'field' => 'slug', 11 'terms' => 'event' 12 ) 13 ) 14); 15$the_query = new WP_Query( $args ); 16$max_num_pages = $the_query->max_num_pages; 17 if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?> 18 19----省略---- 20 21<?php ($posts_per_page, 'info', 'event'); ?>
やってみたこと
if ($not_in_category != NULL) {
$wp_query->query(array(
'category__not_in' => $not_in_category,
));
}
上記部分を'category__in'にしてみたり、
<?php ($posts_per_page, 'info', 'event'); ?>の'event'部分をIDに変更してみたりしました。
カテゴリごとの一覧もページャー自体は表示されるのですが
カテゴリに所属している記事数とページャーの表示される数が異なり、
記事がないのにページャーが表示されている状態です。
検索ワードが悪いのかもしれませんが、カスタム投稿のカテゴリ記事一覧についての
ページネーションの記事が出てこず困っております。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー