Make WordPress Core

Ticket #24142: 24142.diff

File 24142.diff, 3.7 KB (added by Howdy_McGee, 7 years ago)

Removal of empty() in favor of isset() is_numeric() and is_bool()

  • class-wp-query.php

     
    18531853                                $q['post_type'] = '';
    18541854                        }
    18551855                }
     1856               
    18561857                $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' );
    18591862                }
    1860                 if ( isset( $q['showposts'] ) && $q['showposts'] ) {
     1863               
     1864                if ( isset( $q['showposts'] ) && ( is_numeric( $q['showposts'] ) || is_bool( $q['showposts'] ) ) ) {
    18611865                        $q['showposts']      = (int) $q['showposts'];
    18621866                        $q['posts_per_page'] = $q['showposts'];
    18631867                }
    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'];
    18661871                }
     1872               
    18671873                if ( ! isset( $q['nopaging'] ) ) {
    1868                         if ( -1 == $q['posts_per_page'] ) {
     1874                        if ( -1 == $q['posts_per_page'] || 0 == $q['posts_per_page'] ) {
    18691875                                $q['nopaging'] = true;
    18701876                        } else {
    18711877                                $q['nopaging'] = false;
     
    18731879                }
    18741880
    18751881                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'];
    18791886                        } else {
    1880                                 $q['posts_per_page'] = get_option( 'posts_per_rss' );
     1887                                $q['posts_per_page'] = (int) get_option( 'posts_per_rss' );
    18811888                        }
    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                        }
    18831895                }
    1884                 $q['posts_per_page'] = (int) $q['posts_per_page'];
     1896               
    18851897                if ( $q['posts_per_page'] < -1 ) {
    18861898                        $q['posts_per_page'] = abs( $q['posts_per_page'] );
    1887                 } elseif ( 0 == $q['posts_per_page'] ) {
    1888                         $q['posts_per_page'] = 1;
    18891899                }
    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' );
    18931905                }
    18941906
    18951907                if ( $this->is_home && ( empty( $this->query ) || 'true' === $q['preview'] ) && ( 'page' === get_option( 'show_on_front' ) ) && get_option( 'page_on_front' ) ) {
     
    25672579                }
    25682580
    25692581                // Paging.
    2570                 if ( empty( $q['nopaging'] ) && ! $this->is_singular ) {
     2582                if ( ( empty( $q['nopaging'] ) || 0 == $q['posts_per_page'] ) && ! $this->is_singular ) {
    25712583                        $page = absint( $q['paged'] );
    25722584                        if ( ! $page ) {
    25732585                                $page = 1;
     
    32563268                 */
    32573269                $this->found_posts = apply_filters_ref_array( 'found_posts', array( $this->found_posts, &$this ) );
    32583270
    3259                 if ( ! empty( $limits ) ) {
     3271                if ( ! empty( $limits ) && 0 != $q['posts_per_page'] ) {
    32603272                        $this->max_num_pages = ceil( $this->found_posts / $q['posts_per_page'] );
    32613273                }
    32623274        }
     
    44134425                _deprecated_function( __METHOD__, '4.5.0' );
    44144426                return $check;
    44154427        }
    4416 }
     4428}
     4429 No newline at end of file