2016.11.08
【WordPress】1ページ目と2ページ目以降で一覧記事の表示件数を変更する。それに合わせてナビゲーションのページ数を調整(WP-PageNavi)。
1ページ目の最初の記事だけ1カラム、その他は2カラムにした場合など、1ページ目と2ページ目以降で表示件数を変更したい場合がありますよね。
その方法をメモメモ。
それに合わせてページナビゲーション(プラグインのWP-PageNaviを使用している場合)を変更する必要があるので、そちらの方法をメモメモ。
▼functions.php
define('PAGE_1ST', 11); // 1ページ目の件数 define('PAGE_2ND', 10); // 2ページ目以降の件数 function change_posts_paging($query) { // 管理画面は除外 if ( is_admin() ) return; // ホームのみ適用 if ( $query->is_home() ) { $query->set( 'posts_per_page', PAGE_1ST); //1ページ目に表示する記事数 } $paged = get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1; if ($paged >= 2){ // 2ページ目以降の場合 $query->set('offset', PAGE_1ST + PAGE_2ND*($paged-2) ); $query->set('posts_per_page', PAGE_2ND); // 2ページ目以降に表示させたい記事数 }} add_action( 'pre_get_posts', 'change_posts_paging' );
▼core.php(plugins/wp-pagenaviフォルダ内)
default: // WP_Query $posts_per_page = intval( $query->get( 'posts_per_page' ) ); $paged = max( 1, absint( $query->get( 'paged' ) ) ); $total_pages = max( 1, absint( $query->max_num_pages ) ); //追記 if ( $query->is_home() ) { $total_pages = 1 + ceil(($GLOBALS['wp_query']->found_posts - PAGE_1ST)/PAGE_2ND); } break;
【参考】
WordPressで1ページ目と2ページ目以降で表示件数を変更する
[WordPress] 一覧の表示件数を1ページ目と2ページ目以降で変更