• Hi all,

    I’m trying to use get_pages to list pages in a more sophisticated manner than wp_list_pages, however to get the ULs to work properly with the depths then I need to find each page’s depth, however, I created a function to get the page depth but it doesn’t work on the subpages.

    This is the function:

    function pagedepth($page)
    {
    	$ancestors = get_post_ancestors($page->ID);
    	return count($ancestors);
    }

    And this is the list pages:

    function listpoint($pg)
    		{
    			echo pagedepth($pg);
    			echo '<li><a href="';
    			echo get_page_link($pg->ID);
    			echo '">';
    			echo $pg->post_title;
    			echo '</a> ';
    			echo get_userdata($pg->post_author)->display_name;
    			echo '—';
    				if (get_post_custom_values('Character', $pg->ID)==TRUE)
    				{
    				  $mykey_values = 	get_post_custom_values('Character', $pg->ID);
    				  foreach ( $mykey_values as $key => $value )
    					{
    				    echo $value;
    					echo ', ';
    				 	}
    				}
    			echo mysql2date('D, M j, Y H:i a', $pg->post_date);
    			echo '</li>';
    		}
    
    		function listpages($thepost){
    			$pages = get_pages('child_of='.$thepost->ID.'&sort_column=post_date&sort_order=DESC');
    			$previousdepth = 0;
    			$homedepth = pagedepth($thepost);
    			foreach($pages as $page)
    			{
    				$pagedepth = pagedepth($page);
    				if($pagedepth > $previousdepth)
    					echo '<ul>';
    				while($pagedepth < $previousdepth && count(get_pages('child_of='.$page->ID)) != 0)
    					{ echo '</ul>';
    					$pagedepth--;
    					if($pagedepth = 1)
    					break;
    					}
    				$parent_page = $page->post_parent;
    				$content = $page->post_content;
    				if(!$content)
    					continue;
    				$content = apply_filters('the_content', $content);
    				listpoint($page);
    				$previousdepth = $pagedepth;
    			}
    	}

    Any help would be greatly appreciated.

    Thanks.

    Cheers,

    Luke

  • The topic ‘Page depth not working on function’ is closed to new replies.