wp_terms_checklist
函数
wp_terms_checklist ( $post_id = 0, $args = array() )
- 参数
-
-
(int)
$post_id
Optional. Post ID. Default 0.- Required: 否
-
(array|string)
$args
{ Optional. Array or string of arguments for generating a terms checklist. Default empty array. @type int $descendants_and_self ID of the category to output along with its descendants. Default 0. @type int[] $selected_cats Array of category IDs to mark as checked. Default false. @type int[] $popular_cats Array of category IDs to receive the “popular-category” class. Default false. @type Walker $walker Walker object to use to build the output. Default empty which results in a Walker_Category_Checklist instance being used. @type string $taxonomy Taxonomy to generate the checklist for. Default ‘category’. @type bool $checked_ontop Whether to move checked items out of the hierarchy and to the top of the list. Default true. @type bool $echo Whether to echo the generated markup. False to return the markup instead of echoing it. Default true. }- Required: 否
- Default: array()
-
(int)
- 返回值
-
- (string) HTML list of input elements.
- 定义位置
-
-
wp-admin/includes/template.php
, line 81
-
wp-admin/includes/template.php
- 引入
- 3.0.0
- 弃用
- –
Outputs an unordered list of checkbox input elements labelled with term names.
Taxonomy-independent version of wp_category_checklist().
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, 'echo' => true, ); /** * Filters the taxonomy terms checklist arguments. * * @since 3.4.0 * * @see wp_terms_checklist() * * @param array|string $args An array or string of arguments. * @param int $post_id The post ID. */ $params = apply_filters( 'wp_terms_checklist_args', $args, $post_id ); $parsed_args = wp_parse_args( $params, $defaults ); if ( empty( $parsed_args['walker'] ) || ! ( $parsed_args['walker'] instanceof Walker ) ) { $walker = new Walker_Category_Checklist; } else { $walker = $parsed_args['walker']; } $taxonomy = $parsed_args['taxonomy']; $descendants_and_self = (int) $parsed_args['descendants_and_self']; $args = array( 'taxonomy' => $taxonomy ); $tax = get_taxonomy( $taxonomy ); $args['disabled'] = ! current_user_can( $tax->cap->assign_terms ); $args['list_only'] = ! empty( $parsed_args['list_only'] ); if ( is_array( $parsed_args['selected_cats'] ) ) { $args['selected_cats'] = array_map( 'intval', $parsed_args['selected_cats'] ); } elseif ( $post_id ) { $args['selected_cats'] = wp_get_object_terms( $post_id, $taxonomy, array_merge( $args, array( 'fields' => 'ids' ) ) ); } else { $args['selected_cats'] = array(); } if ( is_array( $parsed_args['popular_cats'] ) ) { $args['popular_cats'] = array_map( 'intval', $parsed_args['popular_cats'] ); } else { $args['popular_cats'] = get_terms( array( 'taxonomy' => $taxonomy, 'fields' => 'ids', 'orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false, ) ); } if ( $descendants_and_self ) { $categories = (array) get_terms( array( 'taxonomy' => $taxonomy, 'child_of' => $descendants_and_self, 'hierarchical' => 0, 'hide_empty' => 0, ) ); $self = get_term( $descendants_and_self, $taxonomy ); array_unshift( $categories, $self ); } else { $categories = (array) get_terms( array( 'taxonomy' => $taxonomy, 'get' => 'all', ) ); } $output = ''; if ( $parsed_args['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'], true ) ) { $checked_categories[] = $categories[ $k ]; unset( $categories[ $k ] ); } } // Put checked categories on top. $output .= $walker->walk( $checked_categories, 0, $args ); } // Then the rest of them. $output .= $walker->walk( $categories, 0, $args ); if ( $parsed_args['echo'] ) { echo $output; } return $output; }
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。