WordPress.org

Make WordPress Core

Ticket #16574: 16574.2.diff

File 16574.2.diff, 863 bytes (added by johnjamesjacoby, 3 years ago)

Post type agnostic, and make diff do what it's supposed to

  • post.php

     
    45824582                return; 
    45834583 
    45844584        $id = $_post->ancestors[] = $_post->post_parent; 
    4585         while ( $ancestor = $wpdb->get_var( $wpdb->prepare("SELECT `post_parent` FROM $wpdb->posts WHERE ID = %d LIMIT 1", $id) ) ) { 
     4585 
     4586        while ( $ancestor = get_posts( array( 'post_parent' => $id, 'post_type' => 'any', 'numberposts' => 1, 'update_post_meta_cache' => false, 'update_post_term_cache' => false ) ) ) { 
    45864587                // Loop detection: If the ancestor has been seen before, break. 
    4587                 if ( ( $ancestor == $_post->ID ) || in_array($ancestor,  $_post->ancestors) ) 
     4588                if ( ( $ancestor[0]->ID == $_post->ID ) || in_array($ancestor[0]->ID,  $_post->ancestors) ) 
    45884589                        break; 
    4589                 $id = $_post->ancestors[] = $ancestor; 
     4590                $id = $_post->ancestors[] = $ancestor[0]->ID; 
    45904591        } 
    45914592} 
    45924593