WordPress.org

Make WordPress Core

Ticket #11076: post.php.diff

File post.php.diff, 2.8 KB (added by scribu, 8 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