WordPressで投稿表示件数を変更する

咲くは浮世の君花火が楽しみで仕方ありません。

特定のカテゴリページなどで投稿の表示件数を変更します。

普段はリスト表示だけど特定のカテゴリだとグリッド表示にしたい時ありますよね。WP_Query()だと表示件数をぱっとみ変更できますがページネーションがおかしくなってしまうのでfunctions.phpからなんとかします

functions.php

//投稿表示件数を変更
function my_pre_get_posts( $query ) {
    if ( is_admin() || ! $query -> is_main_query() ) return;

    if ( $query -> is_archive('slug') ) {
        $query -> set( 'posts_per_page', '5' );
    }
}
add_action( 'pre_get_posts', 'my_pre_get_posts' );