Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




wp_terms_checklist [ WordPress Function ]

wp_terms_checklist ( $post_id = 0, $args = array() )
Parameters:
  • (int) $post_id
  • (array) $args
Defined at:



Output an unordered list of checkbox <input> elements labelled with term names. Taxonomy independent version of wp_category_checklist().

Source


<?php
function wp_terms_checklist($post_id 0$args = array()) {
     
$defaults = array(
        
'descendants_and_self' => 0,
        
'selected_cats' => false,
        
'popular_cats' => false,
        
'walker' => null,
        
'taxonomy' => 'category',
        
'checked_ontop' => true
    
);
    
$args apply_filters'wp_terms_checklist_args'$args$post_id );

    
extractwp_parse_args($args$defaults), EXTR_SKIP );

    if ( empty(
$walker) || !is_a($walker'Walker') )
        
$walker = new Walker_Category_Checklist;

    
$descendants_and_self = (int) $descendants_and_self;

    
$args = array('taxonomy' => $taxonomy);

    
$tax get_taxonomy($taxonomy);
    
$args['disabled'] = !current_user_can($tax->cap->assign_terms);

    if ( 
is_array$selected_cats ) )
        
$args['selected_cats'] = $selected_cats;
    elseif ( 
$post_id )
        
$args['selected_cats'] = wp_get_object_terms($post_id$taxonomyarray_merge($args, array('fields' => 'ids')));
    else
        
$args['selected_cats'] = array();

    if ( 
is_array$popular_cats ) )
        
$args['popular_cats'] = $popular_cats;
    else
        
$args['popular_cats'] = get_terms$taxonomy, array( 'fields' => 'ids''orderby' => 'count''order' => 'DESC''number' => 10'hierarchical' => false ) );

    if ( 
$descendants_and_self ) {
        
$categories = (array) get_terms($taxonomy, array( 'child_of' => $descendants_and_self'hierarchical' => 0'hide_empty' => ) );
        
$self get_term$descendants_and_self$taxonomy );
        
array_unshift$categories$self );
    } else {
        
$categories = (array) get_terms($taxonomy, array('get' => 'all'));
    }

    if ( 
$checked_ontop ) {
        
// Post process $categories rather than adding an exclude to the get_terms() query to keep the query the same across all posts (for any query cache)
        
$checked_categories = array();
        
$keys array_keys$categories );

        foreach( 
$keys as $k ) {
            if ( 
in_array$categories[$k]->term_id$args['selected_cats'] ) ) {
                
$checked_categories[] = $categories[$k];
                unset( 
$categories[$k] );
            }
        }

        
// Put checked cats on top
        
echo call_user_func_array(array(&$walker'walk'), array($checked_categories0$args));
    }
    
// Then the rest of them
    
echo call_user_func_array(array(&$walker'walk'), array($categories0$args));
}
?>

Examples [ wp-snippets.com ]

Top Google zoekresultaten

Meer ...

Gebruikersdiscussies [ wordpress.org ]

0 User Note(s)

Nog geen één. Wees de eerste!

Nieuw toevoegen ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics