Hi I have query to display all child page of ID 10, but I would also like to display granchildren, gran gran gran children of that page ID 10 this what I have so far Thank you 'orderby' => 'date', 'order' => 'DESC', 'post_parent' => 10, 'post_type' => 'page', 'meta_key' => 'extra_menu', 'meta_value' => 'portfoliomenu', 'showposts' => $posts));
Hi, please try this Add to functions.php /** * Create HTML list of pages. * * @package Razorback * @subpackage Walker * @author Michael Fields <> * @copyright Copyright (c) 2010, Michael Fields * @license http://opensource.org/licenses/gpl-license.php GNU Public License * * @uses Walker_Page * * @Since 2010-05-28 * @alter 2010-10-09 */ class Razorback_Walker_Page_Selective_Children extends Walker_Page { /** * Walk the Page Tree. * * @global stdClass WordPress post object. * @uses Walker_Page::$db_fields * @uses Walker_Page::display_element() * * @Since 2010-05-28 * @alter 2010-10-09 */ function walk( $elements, $max_depth ) { global $post; $args = array_slice( func_get_args(), 2 ); $output = ''; /* invalid parameter */ if ( $max_depth < -1 ) { return $output; } /* Nothing to walk */ if ( empty( $elements ) ) { return $output; } /* Set up variables. */ $top_level_elements = array(); $children_elements = array(); $parent_field = $this->db_fields['parent']; $child_of = ( isset( $args[0]['child_of'] ) ) ? (int) $args[0]['child_of'] : 0; /* Loop elements */ foreach ( (array) $elements as $e ) { $parent_id = $e->$parent_field; if ( isset( $parent_id ) ) { /* Top level pages. */ if( $child_of === $parent_id ) { $top_level_elements[] = $e; } /* Only display children of the current hierarchy. */ else if ( ( isset( $post->ID ) && $parent_id == $post->ID ) || ( isset( $post->post_parent ) && $parent_id == $post->post_parent ) || ( isset( $post->ancestors ) && in_array( $parent_id, (array) $post->ancestors ) ) ) { $children_elements[ $e->$parent_field ][] = $e; } } } /* Define output. */ foreach ( $top_level_elements as $e ) { $this->display_element( $e, $children_elements, $max_depth, 0, $args, $output ); } return $output; } } Add to any template file with a php extension: $walker = new Razorback_Walker_Page_Selective_Children(); wp_list_pages( array( 'title_li' => '', 'walker' => $walker, ) ); Will recognize the child_of parameter. $walker = new Razorback_Walker_Page_Selective_Children(); wp_list_pages( array( 'title_li' => '', 'child_of' => 1283, 'walker' => $walker, ) );
Hi Thanks for taking the time to try help but unfortunally it didnt work only display the lits of direct child it doesn't display granchild of id 10