WordPress.org

Make WordPress Core

Ticket #11076: post.php.diff

File post.php.diff, 2.8 KB (added by scribu, 5 years ago)

Use wp_parse_id_list() in get_posts() and get_pages()

  • wp-includes/post.php

     
    987987 * @param array $args Optional. Overrides defaults. 
    988988 * @return array List of posts. 
    989989 */ 
    990 function get_posts($args = null) { 
     990function get_posts($args = '') { 
    991991        $defaults = array( 
     992                'post_type' => 'post', 'category' => 0,  
     993                'exclude' => array(), 'include' => array(), 
     994                'meta_key' => '', 'meta_value' =>'', 
     995                'orderby' => 'post_date', 'order' => 'DESC', 
    992996                'numberposts' => 5, 'offset' => 0, 
    993                 'category' => 0, 'orderby' => 'post_date', 
    994                 'order' => 'DESC', 'include' => '', 
    995                 'exclude' => '', 'meta_key' => '', 
    996                 'meta_value' =>'', 'post_type' => 'post', 
    997997                'suppress_filters' => true 
    998998        ); 
    999999 
     
    10051005        if ( ! empty($r['category']) ) 
    10061006                $r['cat'] = $r['category']; 
    10071007        if ( ! empty($r['include']) ) { 
    1008                 $incposts = preg_split('/[\s,]+/',$r['include']); 
     1008                $incposts = wp_parse_id_list($r['include']); 
    10091009                $r['posts_per_page'] = count($incposts);  // only the number of posts included 
    10101010                $r['post__in'] = $incposts; 
    10111011        } elseif ( ! empty($r['exclude']) ) 
    1012                 $r['post__not_in'] = preg_split('/[\s,]+/',$r['exclude']); 
     1012                $r['post__not_in'] = wp_parse_id_list($r['exclude']); 
    10131013 
    10141014        $r['caller_get_posts'] = true; 
    10151015 
     
    29222922        $defaults = array( 
    29232923                'child_of' => 0, 'sort_order' => 'ASC', 
    29242924                'sort_column' => 'post_title', 'hierarchical' => 1, 
    2925                 'exclude' => '', 'include' => '', 
     2925                'exclude' => array(), 'include' => array(), 
    29262926                'meta_key' => '', 'meta_value' => '', 
    29272927                'authors' => '', 'parent' => -1, 'exclude_tree' => '', 
    29282928                'number' => '', 'offset' => 0, 
     
    29632963                $meta_key = ''; 
    29642964                $meta_value = ''; 
    29652965                $hierarchical = false; 
    2966                 $incpages = preg_split('/[\s,]+/',$include); 
    2967                 if ( count($incpages) ) { 
     2966                $incpages = wp_parse_id_list($include); 
     2967                if ( !empty($incpages) ) { 
    29682968                        foreach ( $incpages as $incpage ) { 
    29692969                                if (empty($inclusions)) 
    29702970                                        $inclusions = $wpdb->prepare(' AND ( ID = %d ', $incpage); 
     
    29782978 
    29792979        $exclusions = ''; 
    29802980        if ( !empty($exclude) ) { 
    2981                 $expages = preg_split('/[\s,]+/',$exclude); 
    2982                 if ( count($expages) ) { 
     2981                $expages = wp_parse_id_list($exclude); 
     2982                if ( !empty($expages) ) { 
    29832983                        foreach ( $expages as $expage ) { 
    29842984                                if (empty($exclusions)) 
    29852985                                        $exclusions = $wpdb->prepare(' AND ( ID <> %d ', $expage); 
     
    29952995        if (!empty($authors)) { 
    29962996                $post_authors = preg_split('/[\s,]+/',$authors); 
    29972997 
    2998                 if ( count($post_authors) ) { 
     2998                if ( !empty($post_authors) ) { 
    29992999                        foreach ( $post_authors as $post_author ) { 
    30003000                                //Do we have an author id or an author login? 
    30013001                                if ( 0 == intval($post_author) ) { 
     
    45834583 
    45844584                add_filter('the_preview', '_set_preview'); 
    45854585        } 
    4586 } 
    4587  No newline at end of file 
     4586} 
     4587