Make WordPress Core

Ticket #16202: exclude_tree.patch

File exclude_tree.patch, 1.1 KB (added by jefsnare, 14 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