Zuordnung einer Taxonomy zu einem Post Type prüfen

Man befindet sich in einem Taxonomy Archiv eines bestimmten Post Type und möchte gerne in der archive.php einen passenden Titel ausgeben.

Beispiel:
Es existieren die Taxonomien Version und Schwierigkeitsgrad welche dem Post Type Schnipsel zugeordnet sind.
Für beide Archive soll der Titel Schnipsel Archiv ausgeben werden.

Um dies zu realisieren wird folgende Funktion für die functions.php benötigt.

PHP / RAW / github:gist
<?php
/**
 * Prüft, ob eine gegebene oder aktuell nachgefragte Taxonomy einem gegebenen Post Type zugeordnet ist.
 *
 * @author Dominik Schilling
 * @license GPLv2
 * @link https://dominikschilling.de/137/
 *
 * @version 0.1 
 * @param object|string $post_type
 * @param string $taxonomy Optional. Standardwert ist null.
 * @return bool True wenn Taxonomy dem Post Type zugeordnet ist, false wenn nicht und bei fehlerhafter Eingabe.
 */
function ds_is_taxonomy_assigned_to_post_type( $post_type, $taxonomy = null ) {	
	if ( is_object( $post_type ) )
		$post_type = $post_type->post_type;

	if ( empty( $post_type ) )
		return false;

	$taxonomies = get_object_taxonomies( $post_type );

	if ( empty( $taxonomy ) )
		$taxonomy = get_query_var( 'taxonomy' );

	return in_array( $taxonomy, $taxonomies );
}

Nachdem diese Funktion implementiert ist, kann mit Hilfe dieses Schnipsels die Zugehörigkeit überprüft und entsprechend reagiert werden.

PHP / RAW / github:gist
<?php
if ( ds_is_taxonomy_assigned_to_post_type( 'schnipsel' ) )
	echo '<h3>Schnipsel Archiv</h3>';
else
	echo '<h3>Archiv</h3>';

Leave a Reply