

WordPressのトップページだけ1件多く記事一覧に表示したいです。

デフォルトの記事表示数：6個

例えば、トップページ（1ページ目）→ 7個  
トップページ（1ページ目）→ 6個  
カテゴリ・タグ・アーカイブ（1ページ目）→ 6個  
カテゴリ・タグ・アーカイブ（2ページ目）→ 6個

のような感じです。

ちなみに、こちらを参考にしてみたのですが、

・[[WordPress] 一覧の表示件数を1ページ目と2ページ目以降で変更 |
Storaip](http://storaip.jp/blog/wordpress-%E4%B8%80%E8%A6%A7%E3%81%AE%E8%A1%A8%E7%A4%BA%E4%BB%B6%E6%95%B0%E3%82%921%E3%83%9A%E3%83%BC%E3%82%B8%E7%9B%AE%E3%81%A82%E3%83%9A%E3%83%BC%E3%82%B8%E7%9B%AE%E4%BB%A5%E9%99%8D%E3%81%A7/)

すべての1ページ目で記事が1つ多くなってしまいました。カテゴリ・タグ・アーカイブはデフォルト数にしたいです。

アドバイスの程、よろしくお願いします。


CC BY-SA 3.0
2017-08-09T05:17:03.620
37045
2017-08-10T07:04:19.380
24754
question
php html css wordpress
WordPress トップページだけ1件多く記事一覧に表示したい


この処理自体をis_home()で分岐してみてはどうですか？  
[https://wpdocs.osdn.jp/関数リファレンス/is_home](https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/is_home)


CC BY-SA 3.0
2017-08-10T04:39:03.763
37087
2017-08-10T04:39:03.763
2265
37045
answer


このプログラムの方針はブログ全体の表示数は６にして、例外的にトップページを７、それに続くページネーションをオフセットを計算して6にしています。  
管理画面の「設定」=>「表示設定」=>「1ページに表示する最大投稿数」を6にします。

functions.phpを開いて、以下を記述します。

[code]

    define('PAGE_1ST', 7);
    define('PAGE_2ND', get_option( 'posts_per_page' ));
    function change_posts_paging( $query ) {
      $paged = get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1;
      if ( is_home() && $paged == 1 && !is_admin() ) {
        $query->set( 'posts_per_page', PAGE_1ST );
      }elseif( is_home() && $paged >= 2 && !is_admin() ){
        $query->set('offset', PAGE_1ST + PAGE_2ND*($paged-2));
        $query->set( 'posts_per_page', PAGE_2ND);
      }
    }
    add_action( 'pre_get_posts', 'change_posts_paging' );
    
[/code]

もしも、上手くいかない場合は`is_home()`を`is_front_page()`にしてみてください。


CC BY-SA 3.0
2017-08-10T06:58:52.603
37093
2017-08-10T07:04:19.380
2017-08-10T07:04:19.380
5436
5436
37045
answer