表題の件ですが、指定した記事を一覧ページの上位に表示させたいのですが、
現在以下の記述で一覧ページの表示はうまくいくのですがページネーションがうまく機能していません。
記事はこれ以上ないのに5ページ目、6ページ目のリンクが存在します。
・Seamless Sticky Custom Post Typesのプラグインを使用して任意の記事に「先頭に固定表示」
WPに詳しい方ではないので不足な情報等あるかと思いますがどなたかご教示いただけましたら幸いです。
よろしくお願い致します。
<!--archive.php--> <ul> <?php $list_cnt = 15; //表示させたい件数 $sticky = get_option( 'sticky_posts' ); //先頭固定の記事 if ( !empty( $sticky ) )$list_cnt -= count( $sticky ); $the_query = new WP_Query( array( 'post_type' => array( 'products' ), 'post__not_in' => array( $data[ 0 ]->ID ), 'posts_per_page' => $list_cnt, 'paged' => get_query_var( 'paged' ) ) ); ?> <?php while ( $the_query->have_posts() ) : $the_query->the_post();?> <li>contents</li> <?php endwhile; wp_reset_postdata(); ?> </ul> <?php if ( function_exists( "pagination" ) ) { pagination( $additional_loop-- > max_num_pages ); } ?> <!--function.php--> <?php function pagination( $pages = '', $range = 2 ) { $showitems = ( $range * 5 ) + 1; //表示するページ数(5ページを表示) global $paged; //現在のページ値 if ( empty( $paged ) )$paged = 1; //デフォルトのページ if ( $pages == '' ) { global $wp_query; $pages = $wp_query->max_num_pages; //全ページ数を取得 if ( !$pages ) //全ページ数が空の場合は、1とする { $pages = 1; } } if ( 1 != $pages ) //全ページが1でない場合はページネーションを表示する { echo "<div class=\"pagenation\">\n"; echo "<ul>\n"; for ( $i = 1; $i <= $pages; $i++ ) { if ( 1 != $pages && ( !( $i >= $paged + $range + 1 || $i <= $paged - $range - 1 ) || $pages <= $showitems ) ) { //三項演算子での条件分岐 echo( $paged == $i ) ? "<li class=\"active\">" . $i . "</li>\n": "<li><a href='" . get_pagenum_link( $i ) . "'>" . $i . "</a></li>\n"; } } echo "</ul>\n"; echo "</div>\n"; } } ?>

回答1件
あなたの回答
tips
プレビュー