Ticket #24142: 24142.diff
| File 24142.diff, 3.7 KB (added by , 7 years ago) |
|---|
-
class-wp-query.php
1853 1853 $q['post_type'] = ''; 1854 1854 } 1855 1855 } 1856 1856 1857 $post_type = $q['post_type']; 1857 if ( empty( $q['posts_per_page'] ) ) { 1858 $q['posts_per_page'] = get_option( 'posts_per_page' ); 1858 if( isset( $q['posts_per_page'] ) && ( is_numeric( $q['posts_per_page'] ) || is_bool( $q['posts_per_page'] ) ) ) { 1859 $q['posts_per_page'] = (int) $q['posts_per_page']; 1860 } else { 1861 $q['posts_per_page'] = (int) get_option( 'posts_per_page' ); 1859 1862 } 1860 if ( isset( $q['showposts'] ) && $q['showposts'] ) { 1863 1864 if ( isset( $q['showposts'] ) && ( is_numeric( $q['showposts'] ) || is_bool( $q['showposts'] ) ) ) { 1861 1865 $q['showposts'] = (int) $q['showposts']; 1862 1866 $q['posts_per_page'] = $q['showposts']; 1863 1867 } 1864 if ( ( isset( $q['posts_per_archive_page'] ) && 0 != $q['posts_per_archive_page'] ) && ( $this->is_archive || $this->is_search ) ) { 1865 $q['posts_per_page'] = $q['posts_per_archive_page']; 1868 1869 if ( isset( $q['posts_per_archive_page'] ) && ( is_numeric( $q['posts_per_archive_page'] ) || is_bool( $q['posts_per_archive_page'] ) ) && ( $this->is_archive || $this->is_search ) ) { 1870 $q['posts_per_page'] = (int) $q['posts_per_archive_page']; 1866 1871 } 1872 1867 1873 if ( ! isset( $q['nopaging'] ) ) { 1868 if ( -1 == $q['posts_per_page'] ) {1874 if ( -1 == $q['posts_per_page'] || 0 == $q['posts_per_page'] ) { 1869 1875 $q['nopaging'] = true; 1870 1876 } else { 1871 1877 $q['nopaging'] = false; … … 1873 1879 } 1874 1880 1875 1881 if ( $this->is_feed ) { 1876 // This overrides 'posts_per_page'. 1877 if ( ! empty( $q['posts_per_rss'] ) ) { 1878 $q['posts_per_page'] = $q['posts_per_rss']; 1882 1883 // This overrides posts_per_page. 1884 if ( isset( $q['posts_per_rss'] ) && ( is_numeric( $q['posts_per_rss'] ) || is_bool( $q['posts_per_rss'] ) ) ) { 1885 $q['posts_per_page'] = (int) $q['posts_per_rss']; 1879 1886 } else { 1880 $q['posts_per_page'] = get_option( 'posts_per_rss' );1887 $q['posts_per_page'] = (int) get_option( 'posts_per_rss' ); 1881 1888 } 1882 $q['nopaging'] = false; 1889 1890 if( -1 == $q['posts_per_page'] || 0 == $q['posts_per_page'] ) { 1891 $q['nopaging'] = true; 1892 } else { 1893 $q['nopaging'] = false; 1894 } 1883 1895 } 1884 $q['posts_per_page'] = (int) $q['posts_per_page'];1896 1885 1897 if ( $q['posts_per_page'] < -1 ) { 1886 1898 $q['posts_per_page'] = abs( $q['posts_per_page'] ); 1887 } elseif ( 0 == $q['posts_per_page'] ) {1888 $q['posts_per_page'] = 1;1889 1899 } 1890 1891 if ( ! isset( $q['comments_per_page'] ) || 0 == $q['comments_per_page'] ) { 1892 $q['comments_per_page'] = get_option( 'comments_per_page' ); 1900 1901 if ( isset( $q['comments_per_page'] ) && ( is_numeric( $q['comments_per_page'] ) || is_bool( $q['comments_per_page'] ) ) ) { 1902 $q['comments_per_page'] = (int) $q['comments_per_page']; 1903 } else { 1904 $q['comments_per_page'] = (int) get_option( 'comments_per_page' ); 1893 1905 } 1894 1906 1895 1907 if ( $this->is_home && ( empty( $this->query ) || 'true' === $q['preview'] ) && ( 'page' === get_option( 'show_on_front' ) ) && get_option( 'page_on_front' ) ) { … … 2567 2579 } 2568 2580 2569 2581 // Paging. 2570 if ( empty( $q['nopaging'] ) && ! $this->is_singular ) {2582 if ( ( empty( $q['nopaging'] ) || 0 == $q['posts_per_page'] ) && ! $this->is_singular ) { 2571 2583 $page = absint( $q['paged'] ); 2572 2584 if ( ! $page ) { 2573 2585 $page = 1; … … 3256 3268 */ 3257 3269 $this->found_posts = apply_filters_ref_array( 'found_posts', array( $this->found_posts, &$this ) ); 3258 3270 3259 if ( ! empty( $limits ) ) {3271 if ( ! empty( $limits ) && 0 != $q['posts_per_page'] ) { 3260 3272 $this->max_num_pages = ceil( $this->found_posts / $q['posts_per_page'] ); 3261 3273 } 3262 3274 } … … 4413 4425 _deprecated_function( __METHOD__, '4.5.0' ); 4414 4426 return $check; 4415 4427 } 4416 } 4428 } 4429 No newline at end of file
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)