get_object_taxonomies()

最后更新于:2021-11-26 10:24:25

get_object_taxonomies( string|string[]|GC_Post$object, string$output=’names’)

响应 the names or objects of the taxonomies which are registered for the requested object or object type, such as a post object or post type name.

参数

$object

(string|string[]|GC_Post) (Required) Name of the type of taxonomy object, or an object (row from posts)

$output

(string) (Optional) The type of output to return in the array. Accepts either ‘names’ or ‘objects’.

Default value: ‘names’

响应

(string[]|GC_Taxonomy[]) The names or objects of all taxonomies of $object_type.

源文件

文件: gc-includes/taxonomy.php

function get_object_taxonomies( $object, $output = 'names' ) {
	global $gc_taxonomies;

	if ( is_object( $object ) ) {
		if ( 'attachment' === $object->post_type ) {
			return get_attachment_taxonomies( $object, $output );
		}
		$object = $object->post_type;
	}

	$object = (array) $object;

	$taxonomies = array();
	foreach ( (array) $gc_taxonomies as $tax_name => $tax_obj ) {
		if ( array_intersect( $object, (array) $tax_obj->object_type ) ) {
			if ( 'names' === $output ) {
				$taxonomies[] = $tax_name;
			} else {
				$taxonomies[ $tax_name ] = $tax_obj;
			}
		}
	}

	return $taxonomies;
}
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
        (
            ....
        )
)
<?php 
add_action('gc_head','gcdocs_output_current_post_taxonomies');

/**
 * Output taxonomies for the current post
 */
function gcdocs_output_current_post_taxonomies(){
	global $post;

	$taxonomy_names = get_object_taxonomies( $post );
	print_r( $taxonomy_names );
}
?>