Allow overriding cat walker. Props AaronCampbell. fixes #8682 for trunk

git-svn-id: https://develop.svn.wordpress.org/trunk@10246 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Ryan Boren 2008-12-23 12:52:37 +00:00
parent c5c0b4896f
commit be55326e50
2 changed files with 16 additions and 4 deletions

View File

@ -439,8 +439,10 @@ class Walker_Category_Checklist extends Walker {
* @param unknown_type $selected_cats
* @param unknown_type $popular_cats
*/
function wp_category_checklist( $post_id = 0, $descendants_and_self = 0, $selected_cats = false, $popular_cats = false ) {
$walker = new Walker_Category_Checklist;
function wp_category_checklist( $post_id = 0, $descendants_and_self = 0, $selected_cats = false, $popular_cats = false, $walker = null ) {
if ( empty($walker) || !is_a($walker, 'Walker') )
$walker = new Walker_Category_Checklist;
$descendants_and_self = (int) $descendants_and_self;
$args = array();

View File

@ -719,8 +719,13 @@ function wp_generate_tag_cloud( $tags, $args = '' ) {
* @see Walker_Category::walk() for parameters and return description.
*/
function walk_category_tree() {
$walker = new Walker_Category;
$args = func_get_args();
// the user's options are the third parameter
if ( empty($args[2]['walker']) || !is_a($args[2]['walker'], 'Walker') )
$walker = new Walker_Category;
else
$walker = $args[2]['walker'];
return call_user_func_array(array( &$walker, 'walk' ), $args );
}
@ -732,8 +737,13 @@ function walk_category_tree() {
* @see Walker_CategoryDropdown::walk() for parameters and return description.
*/
function walk_category_dropdown_tree() {
$walker = new Walker_CategoryDropdown;
$args = func_get_args();
// the user's options are the third parameter
if ( empty($args[2]['walker']) || !is_a($args[2]['walker'], 'Walker') )
$walker = new Walker_CategoryDropdown;
else
$walker = $args[2]['walker'];
return call_user_func_array(array( &$walker, 'walk' ), $args );
}