WordPress.org

Make WordPress Core

Ticket #18402: 21272.patch

File 21272.patch, 1.5 KB (added by pdclark, 3 years ago)

Make changes recommended in report; also remove "Page Parent" text when parent is trashed.

  • wp-admin/includes/class-wp-posts-list-table.php

    diff --git wp-admin/includes/class-wp-posts-list-table.php wp-admin/includes/class-wp-posts-list-table.php
    index 9d509bb..0934b26 100644
    class WP_Posts_List_Table extends WP_List_Table { 
    363363                                        clean_post_cache( $page ); 
    364364                                } 
    365365 
    366                                 if ( 0 == $page->post_parent ) 
    367                                         $top_level_pages[] = $page; 
     366                                if ( 0 == $page->post_parent || !$this->is_post_in_array( $page->post_parent, $pages )) 
     367                                    $top_level_pages[] = $page; 
    368368                                else 
    369                                         $children_pages[ $page->post_parent ][] = $page; 
     369                                    $children_pages[ $page->post_parent ][] = $page; 
    370370                        } 
    371371 
    372372                        $pages = &$top_level_pages; 
    class WP_Posts_List_Table extends WP_List_Table { 
    514514                                                        if ( is_null( $parent ) ) 
    515515                                                                break; 
    516516 
    517                                                         $level++; 
    518517                                                        $find_main_page = (int) $parent->post_parent; 
    519518 
    520                                                         if ( !isset( $parent_name ) ) 
     519                                                        if ( !isset( $parent_name ) && $parent->post_status != 'trash' ) 
    521520                                                                $parent_name = apply_filters( 'the_title', $parent->post_title, $parent->ID ); 
    522521                                                } 
    523522                                        } 
    class WP_Posts_List_Table extends WP_List_Table { 
    10601059                </tbody></table></form> 
    10611060<?php 
    10621061        } 
     1062 
     1063        /** 
     1064         * Determine if a post object with certain ID exists in an array of post objects 
     1065         * 
     1066         * @return bool 
     1067         */ 
     1068        function is_post_in_array( $post_id, $posts ) {     
     1069                foreach ( $posts as $post ) { 
     1070                        if ( $post->ID == $post_id ) { 
     1071                                return true; 
     1072                        } 
     1073                } 
     1074                return false; 
     1075        }   
    10631076}