ページ送りはできたんですが、2ページまでしか、送ることができません。
function.phpが機能してないと思われます。
知識があまりなくて原因がわからないので回答よろしくお願いします。
php
1<div class="panel is-show"> 2 <?php 3 $paged = get_query_var('page') ? get_query_var('page') : 1 ; 4 $args = array( 5 'post_type' => 'post', 6 'category_name' => 'news,blog', 7 'posts_per_page' => 3, 8 'paged' => $paged 9 ); 10 $the_query = new WP_Query( $args ); 11 if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : 12 $the_query->the_post(); ?> 13 <div class="left-post-date"> 14 <?php echo get_the_date(); ?> 15 </div> 16 <div class="left-post-item"> 17 <?php the_category(); ?> 18 </div> 19 <a href="<?php the_permalink(); ?>" class="left-post-title"> 20 <?php echo get_the_title(); ?></a> 21 <?php endwhile; ?> 22 <?php endif; ?> 23 <div class="nav-previous alignleft"> 24 <?php next_posts_link( '<img src="'. get_template_directory_uri().'/img/競技.png" />' ); ?></div> 25 <div class="nav-next alignright"><?php previous_posts_link( '<img src="'. get_template_directory_uri().'/img/競技-2.png" />' ); ?></div> 26 <?php wp_reset_postdata(); ?> 27 <?php // ページネーション ?> 28 <?php 29 if ( subPagination() ) { 30 echo subPagination(); 31 } 32 ?>
php
1function subPagination($end_size = 1, $mid_size = 2, $prev_next = true) { 2 global $the_query; 3 $page_format = paginate_links( 4 array( 5 'current' => max(1, get_query_var('page')), 6 'total' => $the_query->max_num_pages, 7 'type' => 'array', 8 'prev_text' => '前へ',//前へのリンク文言 9 'next_text' => '次へ',//次へのリンク文言 10 'end_size' => $end_size,//初期値:1 両端のページリンクの数 11 'mid_size' => $mid_size,//初期値:2 現在のページの両端にいくつページリンクを表示するか(現在のページは含まない) 12 'prev_next' => $prev_next,//初期値:true リストの中に「前へ」「次へ」のリンクを含むか 13 ) 14 ); 15 $code = ''; 16 if( is_array($page_format) ) { 17 $paged = get_query_var('page') == 0 ? 1 : get_query_var('page'); 18 $code .= '<div class="pagination">'.PHP_EOL; 19 $code .= '<ul>'.PHP_EOL; 20 foreach ( $page_format as $page ) { 21 $code .= '<li>'.$page.'</li>'.PHP_EOL; 22 } 23 $code .= '</ul>'.PHP_EOL; 24 $code .= '</div>'.PHP_EOL; 25 $code .= '<div class="pagination-total">'.$paged.'/'.$the_query->max_num_pages.'</div>'.PHP_EOL; 26 } 27 wp_reset_query(); 28 return $code; 29 }
試したこと
$the_query = new WP_Query($args);をfunction.phpから消すと、ページ数が出るようになりました。
ただ、最大表示数が4ページまでで、次はの文字を押してもページが送りができません。
ワードプレスの1ページの最大投稿数は10となってます。
3ページ目や、4ページ目を押すと下の画像が出てきます。
回答2件
あなたの回答
tips
プレビュー