From c92f58a6d51e0b0398f016a6d01d5f190c1bd147 Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Fri, 7 Mar 2014 18:59:14 +0000 Subject: [PATCH] On second thought, allow `posts_per_rss` to be set in `pre_get_posts` to override the `posts_per_rss` option. There are backwards compatibility concerns otherwise. Props nacin. Partially reverts [27455]. Updates the unit test. See #25380. Built from https://develop.svn.wordpress.org/trunk@27456 git-svn-id: http://core.svn.wordpress.org/trunk@27302 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/query.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/wp-includes/query.php b/wp-includes/query.php index e8c95caf68..0f7e104f99 100644 --- a/wp-includes/query.php +++ b/wp-includes/query.php @@ -2248,12 +2248,8 @@ class WP_Query { $q['post_type'] = ''; } $post_type = $q['post_type']; - if ( ! isset( $q['posts_per_page'] ) || $q['posts_per_page'] == 0 ) { - if ( $this->is_feed ) { - $q['posts_per_page'] = get_option( 'posts_per_rss' ); - } else { - $q['posts_per_page'] = get_option( 'posts_per_page' ); - } + if ( empty( $q['posts_per_page'] ) ) { + $q['posts_per_page'] = get_option( 'posts_per_page' ); } if ( isset($q['showposts']) && $q['showposts'] ) { $q['showposts'] = (int) $q['showposts']; @@ -2269,6 +2265,12 @@ class WP_Query { } } if ( $this->is_feed ) { + // This overrides posts_per_page. + if ( ! empty( $q['posts_per_rss'] ) ) { + $q['posts_per_page'] = $q['posts_per_rss']; + } else { + $q['posts_per_page'] = get_option( 'posts_per_rss' ); + } $q['nopaging'] = false; } $q['posts_per_page'] = (int) $q['posts_per_page'];