WordPress at a glance

get_the_taxonomies() WP 1.0

Retrieve all taxonomies associated with a post.

This function can be used within the loop. It will also return an array of the taxonomies with links to the taxonomy and name.

Is the basis for: the_taxonomies()
✈ 1 time = 0.004388s = very slow | 50000 times = 114.09s = extreme slow PHP 7.0.8, WP 4.6

No Hooks.

Return

Array. List of taxonomies.

Usage

get_the_taxonomies( $post, $args );
$post(int/WP_Post)
Post ID or WP_Post object.
Default: global $post
$args(array)

Arguments about how to format the list of taxonomies.

  • $template (string)
    Template for displaying a taxonomy label and list of terms.
    Default: "Label: Terms."

  • $term_template (string)
    Template for displaying a single term in the list.
    Default: term name linked to its archive

Default: empty array

Code of get_the_taxonomies: wp-includes/taxonomy.php VER 4.9.8

<?php
function get_the_taxonomies( $post = 0, $args = array() ) {
	$post = get_post( $post );

	$args = wp_parse_args( $args, array(
		/* translators: %s: taxonomy label, %l: list of terms formatted as per $term_template */
		'template' => __( '%s: %l.' ),
		'term_template' => '<a href="%1$s">%2$s</a>',
	) );

	$taxonomies = array();

	if ( ! $post ) {
		return $taxonomies;
	}

	foreach ( get_object_taxonomies( $post ) as $taxonomy ) {
		$t = (array) get_taxonomy( $taxonomy );
		if ( empty( $t['label'] ) ) {
			$t['label'] = $taxonomy;
		}
		if ( empty( $t['args'] ) ) {
			$t['args'] = array();
		}
		if ( empty( $t['template'] ) ) {
			$t['template'] = $args['template'];
		}
		if ( empty( $t['term_template'] ) ) {
			$t['term_template'] = $args['term_template'];
		}

		$terms = get_object_term_cache( $post->ID, $taxonomy );
		if ( false === $terms ) {
			$terms = wp_get_object_terms( $post->ID, $taxonomy, $t['args'] );
		}
		$links = array();

		foreach ( $terms as $term ) {
			$links[] = wp_sprintf( $t['term_template'], esc_attr( get_term_link( $term ) ), $term->name );
		}
		if ( $links ) {
			$taxonomies[$taxonomy] = wp_sprintf( $t['template'], $t['label'], $links, $terms );
		}
	}
	return $taxonomies;
}

Related Functions

From category: For posts

No comments
    Hello, !     Log In . Register