WordPress函数get_object_taxonomies()返回为请求的对象或对象类型注册的分类法的名称

WordPress函数get_object_taxonomies()返回为请求的对象或对象类型注册的分类法的名称

WordPress函数get_object_taxonomies()返回为请求的对象或对象类型注册的分类法的名称

  WordPress 中的函数get_object_taxonomies()用于检索为给定对象或对象类型注册的分类法。它需要两个参数:

  推荐:[最新版]Shoptimizer主题下载最快的WooCommerce主题

get_object_taxonomies()函数基本语法

描述

  确定分类对象是否分层

用法

get_object_taxonomies ( $object_type , $output );

参数

  • $object:这可以是对象类型的名称(例如'post')或对象(例如WP_Postobject)。
  • $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()获取注册支持时传递的主题参数

  推荐:WordPress函数使用手册


滚动至顶部