WordPress.org

Make WordPress Core

Ticket #16202: exclude_tree.patch

File exclude_tree.patch, 1.1 KB (added by jefsnare, 3 years ago)
  • wp-includes/post.php

     
    34343434                $pages = & get_page_children($child_of, $pages); 
    34353435 
    34363436        if ( !empty($exclude_tree) ) { 
    3437                 $exclude = (int) $exclude_tree; 
    3438                 $children = get_page_children($exclude, $pages); 
    3439                 $excludes = array(); 
    3440                 foreach ( $children as $child ) 
    3441                         $excludes[] = $child->ID; 
    3442                 $excludes[] = $exclude; 
    3443                 $num_pages = count($pages); 
    3444                 for ( $i = 0; $i < $num_pages; $i++ ) { 
    3445                         if ( in_array($pages[$i]->ID, $excludes) ) 
    3446                                 unset($pages[$i]); 
     3437                $exclude_trees = preg_split('/[\s,]+/',$exclude_tree); 
     3438                if ( count($exclude_trees) ) { 
     3439                        $num_pages = count($pages); 
     3440                        foreach ( $exclude_trees as $tree ) { 
     3441                                $exclude = (int) $tree; 
     3442                                $children = get_page_children($exclude, $pages); 
     3443                                $excludes = array(); 
     3444                                foreach ( $children as $child ) 
     3445                                        $excludes[] = $child->ID; 
     3446                                $excludes[] = $exclude; 
     3447                                for ( $i = 0; $i < $num_pages; $i++ ) { 
     3448                                        if ( in_array($pages[$i]->ID, $excludes) ) 
     3449                                                unset($pages[$i]); 
     3450                                } 
     3451                        } 
    34473452                } 
    34483453        } 
    34493454