WordPress.org

Make WordPress Core

Ticket #9153: post.php-exclude_tree.patch

File post.php-exclude_tree.patch, 1.2 KB (added by cgaffga, 6 years ago)

roothorick patch updated to patch agains 3.8.1, where this problem persists

  • .php

    old new  
    36983698                'sort_column' => 'post_title', 'hierarchical' => 1,
    36993699                'exclude' => array(), 'include' => array(),
    37003700                'meta_key' => '', 'meta_value' => '',
    3701                 'authors' => '', 'parent' => -1, 'exclude_tree' => '',
     3701                'authors' => '', 'parent' => -1, 'exclude_tree' => array(),
    37023702                'number' => '', 'offset' => 0,
    37033703                'post_type' => 'page', 'post_status' => 'publish',
    37043704        );
     
    38813881                $pages = get_page_children($child_of, $pages);
    38823882
    38833883        if ( !empty($exclude_tree) ) {
    3884                 $exclude = (int) $exclude_tree;
    3885                 $children = get_page_children($exclude, $pages);
    3886                 $excludes = array();
    3887                 foreach ( $children as $child )
    3888                         $excludes[] = $child->ID;
    3889                 $excludes[] = $exclude;
     3884                $exclude = preg_split('/[\s,]+/',$exclude_tree);
     3885                foreach( $exclude as $id ) // Remember: works on a COPY
     3886                {
     3887                        $children = get_page_children($id, $pages);             
     3888                        foreach ( $children as $child )
     3889                                $exclude[] = $child->ID;
     3890                }
    38903891                $num_pages = count($pages);
    38913892                for ( $i = 0; $i < $num_pages; $i++ ) {
    3892                         if ( in_array($pages[$i]->ID, $excludes) )
     3893                        if ( in_array($pages[$i]->ID, $exclude) )
    38933894                                unset($pages[$i]);
    38943895                }
    38953896        }