WordPress.org

Make WordPress Core

Ticket #9153: 9153.4.patch

File 9153.4.patch, 1.4 KB (added by hakre, 9 years ago)

Code-Cleanup for Excludes for 2.8 as well.

  • wp-includes/post.php

     
    22012201
    22022202        $exclusions = '';
    22032203        if ( !empty($exclude) ) {
    2204                 $expages = preg_split('/[\s,]+/',$exclude);
     2204                $expages = array_map('intval', explode(',', $exclude));
    22052205                if ( count($expages) ) {
    22062206                        foreach ( $expages as $expage ) {
    22072207                                if (empty($exclusions))
     
    22102210                                        $exclusions .= $wpdb->prepare(' AND ID <> %d ', $expage);
    22112211                        }
    22122212                }
     2213                if (!empty($exclusions))
     2214                        $exclusions .= ')';             
    22132215        }
    2214         if (!empty($exclusions))
    2215                 $exclusions .= ')';
    22162216
    22172217        $author_query = '';
    22182218        if (!empty($authors)) {
     
    22762276                $pages = & get_page_children($child_of, $pages);
    22772277
    22782278        if ( !empty($exclude_tree) ) {
    2279                 $exclude = array();
    2280 
    2281                 $exclude = (int) $exclude_tree;
    2282                 $children = get_page_children($exclude, $pages);
    2283                 $excludes = array();
    2284                 foreach ( $children as $child )
    2285                         $excludes[] = $child->ID;
    2286                 $excludes[] = $exclude;
     2279                $excludes = array_map('intval', explode(',', $exclude_tree));
     2280               
     2281                // exclude tree will work as describben - self and direct childs only (!)               
    22872282                $total = count($pages);
    22882283                for ( $i = 0; $i < $total; $i++ ) {
    2289                         if ( in_array($pages[$i]->ID, $excludes) )
     2284                        if ( in_array($pages[$i]->ID, $excludes) ||
     2285                             in_array($pages[$i]->post_parent, $excludes))                           
    22902286                                unset($pages[$i]);
    22912287                }
    22922288        }