タイトルで言い切ってますが…
WordPress のフィードで表示件数をダッシュボードで入力された値では無く、他の値に変更しようとしてハマったのでシェア。
通常 WordPress で表示件数を変更する場合は、pre_get_posts アクションフックを使って以下のように posts_per_page オプションを指定してやります。
codex にも書いてあるので、これで安心のはずです。
1 2 3 4 5 6 7 8 9 10 11 | <?php function my_pre_get_posts( $query ) { if ( is_admin() || ! $query ->is_main_query() ) return ; if ( is_home() ) { // Display only 1 post for the original blog archive $query ->set( 'posts_per_page' , 1 ); } } add_action( 'pre_get_posts' , 'my_pre_get_posts' , 1 ); |
これをフィードの時にのみ変更しようとして、以下のようなコードを書いたけど、期待通りに表示件数が変更されませんでした。
1 2 3 4 5 6 7 8 9 10 11 | <?php function my_pre_get_posts_for_feed( $query ) { if ( is_admin() || ! $query ->is_main_query() ) return ; if ( is_feed() ) { // Display 50 posts for the feed $query ->set( 'posts_per_page' , 50 ); } } add_action( 'pre_get_posts' , 'my_pre_get_posts_for_feed' , 1 ); |