From 6b1b25c6d8f4ba2629c398e8d978ea716305dc3c Mon Sep 17 00:00:00 2001 From: ryan Date: Fri, 19 Dec 2008 20:27:11 +0000 Subject: [PATCH] Allow custom page walker classes. Props MikeLittle. fixes #8673 git-svn-id: http://svn.automattic.com/wordpress/trunk@10230 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/post-template.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/wp-includes/post-template.php b/wp-includes/post-template.php index 990e78b08a..0dc9120993 100644 --- a/wp-includes/post-template.php +++ b/wp-includes/post-template.php @@ -719,7 +719,11 @@ function wp_page_menu( $args = array() ) { * @see Walker_Page::walk() for parameters and return description. */ function walk_page_tree($pages, $depth, $current_page, $r) { - $walker = new Walker_Page; + if ( empty($r['walker']) ) + $walker = new Walker_Page; + else + $walker = $r['walker']; + $args = array($pages, $depth, $r, $current_page); return call_user_func_array(array(&$walker, 'walk'), $args); } @@ -732,8 +736,12 @@ function walk_page_tree($pages, $depth, $current_page, $r) { * @see Walker_PageDropdown::walk() for parameters and return description. */ function walk_page_dropdown_tree() { - $walker = new Walker_PageDropdown; $args = func_get_args(); + if ( empty($args[2]['walker']) ) // the user's options are the third parameter + $walker = new Walker_PageDropdown; + else + $walker = $args[2]['walker']; + return call_user_func_array(array(&$walker, 'walk'), $args); }