get_category_by_path
函数
get_category_by_path ( $category_path, $full_match = true, $output = OBJECT )
- 参数
-
-
(string)
$category_path
URL containing category slugs.- Required: 是
-
(bool)
$full_match
Optional. Whether full path should be matched.- Required: 否
- Default: true
-
(string)
$output
Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to a WP_Term object, an associative array, or a numeric array, respectively. Default OBJECT.- Required: 否
- Default: OBJECT
-
(string)
- 返回值
-
- (WP_Term|array|WP_Error|null) Type is based on $output value.
- 定义位置
-
-
wp-includes/category.php
, line 124
-
wp-includes/category.php
- 引入
- 2.1.0
- 弃用
- –
Retrieves a category based on URL containing the category slug.
Breaks the $category_path parameter up to get the category slug.
Tries to find the child path and will return it. If it doesn’t find a
match, then it will return the first category matching slug, if $full_match,
is set to false. If it does not, then it will return null.
It is also possible that it will return a WP_Error object on failure. Check
for it when using this function.
function get_category_by_path( $category_path, $full_match = true, $output = OBJECT ) { $category_path = rawurlencode( urldecode( $category_path ) ); $category_path = str_replace( '%2F', '/', $category_path ); $category_path = str_replace( '%20', ' ', $category_path ); $category_paths = '/' . trim( $category_path, '/' ); $leaf_path = sanitize_title( basename( $category_paths ) ); $category_paths = explode( '/', $category_paths ); $full_path = ''; foreach ( (array) $category_paths as $pathdir ) { $full_path .= ( '' !== $pathdir ? '/' : '' ) . sanitize_title( $pathdir ); } $categories = get_terms( array( 'taxonomy' => 'category', 'get' => 'all', 'slug' => $leaf_path, ) ); if ( empty( $categories ) ) { return; } foreach ( $categories as $category ) { $path = '/' . $leaf_path; $curcategory = $category; while ( ( 0 != $curcategory->parent ) && ( $curcategory->parent != $curcategory->term_id ) ) { $curcategory = get_term( $curcategory->parent, 'category' ); if ( is_wp_error( $curcategory ) ) { return $curcategory; } $path = '/' . $curcategory->slug . $path; } if ( $path == $full_path ) { $category = get_term( $category->term_id, 'category', $output ); _make_cat_compat( $category ); return $category; } } // If full matching is not required, return the first cat that matches the leaf. if ( ! $full_match ) { $category = get_term( reset( $categories )->term_id, 'category', $output ); _make_cat_compat( $category ); return $category; } }
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。