WordPress函数get_object_taxonomies()返回为请求的对象或对象类型注册的分类法的名称
WordPress 中的函数get_object_taxonomies()
用于检索为给定对象或对象类型注册的分类法。它需要两个参数:
推荐:[最新版]Shoptimizer主题下载最快的WooCommerce主题
get_object_taxonomies()函数基本语法
描述
确定分类对象是否分层
用法
get_object_taxonomies ( $object_type , $output );
参数
$object
:这可以是对象类型的名称(例如'post'
)或对象(例如WP_Post
object)。$output
:此参数指定是否返回分类法的名称或分类法对象本身。默认值为'names'
。
用法示例:
$taxonomies = get_object_taxonomies ( 'post' );
Array( 'category', 'post_tag' )
推荐:[最新版]TranslatePress Pro插件下载WordPress翻译插件
get_object_taxonomies()函数
get_object_taxonomies()函数通常用在需要获取和处理某对象相关联的所有分类法的场景。如获取分类法后进行循环输出等操作(源文件可参考这里)
function get_object_taxonomies( $object_type, $output = 'names' ) {
global $wp_taxonomies;
if ( is_object( $object_type ) ) {
if ( 'attachment' === $object_type->post_type ) {
return get_attachment_taxonomies( $object_type, $output );
}
$object_type = $object_type->post_type;
}
$object_type = (array) $object_type;
$taxonomies = array();
foreach ( (array) $wp_taxonomies as $tax_name => $tax_obj ) {
if ( array_intersect( $object_type, (array) $tax_obj->object_type ) ) {
if ( 'names' === $output ) {
$taxonomies[] = $tax_name;
} else {
$taxonomies[ $tax_name ] = $tax_obj;
}
}
}
return $taxonomies;
}
推荐:[最新版]LearnDash LMS插件WordPress学习管理系统插件
如何使用get_object_taxonomies()
帖子类型的分类名称
$taxonomy_names = get_object_taxonomies( 'post' );
print_r( $taxonomy_names );
/*
will take it out:
Array
(
[0] => category
[1] => post_tag
[2] => post_format
)
*/
帖子类型的分类对象,与上一个类似的示例,返回与帖子类型相关的分类法作为每个分类法的数据对象
$taxonomy_objects = get_object_taxonomies( 'post', 'objects' );
print_r( $taxonomy_objects );
/*
will take it out:
Array
(
[category] => stdClass Object
(
[hierarchical] => 1
[update_count_callback] =>
[rewrite] =>
[query_var] => category_name
[public] => 1
[show_ui] => 1
[show_tagcloud] => 1
[_builtin] => 1
[labels] => stdClass Object
(
...
)
...
[name] => category
[label] => Categories
)
[post_tag] => stdClass Object
(
...
)
[post_format] => stdClass Object
(
....
)
)
*/
post对象的分类名称,要获取当前帖子支持的分类法名称,您需要传递整个帖子对象而不是帖子类型名称
add_action( 'wp_head', 'get_current_post_taxonomies' );
function get_current_post_taxonomies(){
global $post;
$taxonomy_names = get_object_taxonomies( $post );
print_r( $taxonomy_names );
}
/*
will take it out:
Array
(
[0] => category
[1] => post_tag
[2] => post_format
)
*/
使用对象获取多个帖子类型分类法,此代码将返回所选帖子类型的分类对象。
$post_taxonomies_objects = get_object_taxonomies(
array('page', 'post', 'custom_post_type_slug'),
'objects'
);
print_r($post_taxonomies_objects);
获取带有名称的多个帖子类型分类法,此代码将返回所选帖子类型的分类名称。
$post_taxonomies_names = get_object_taxonomies(
array('page', 'post', 'custom_post_type_slug'),
'names'
);
print_r($post_taxonomies_names);
推荐:WordPress函数get_theme_support()获取注册支持时传递的主题参数
Claude、Netflix、Midjourney、ChatGPT Plus、PS、Disney、Youtube、Office 365、多邻国Plus账号购买,ChatGPT API购买,优惠码XDBK,用户购买的时候输入优惠码可以打95折