SYNCER

SYNCER

is_object_in_taxonomy() - オブジェクトがタクソノミーを利用できるか否かを確認する

公開日:

is_object_in_taxonomy()は、指定したオブジェクトが、指定したタクソノミーを利用できるか否かを確認する関数です。例えば、投稿オブジェクト(post)は、カテゴリータクソノミー(category)やタグタクソノミー(post_tag)を利用できます。一方、固定ページオブジェクト(page)は上記のタクソノミーを利用できません。

構文

bool is_object_in_taxonomy( string $object_type, string $taxonomy )

パラメータ

$object_type

オブジェクトの名称。投稿ならpost、固定ページならpageなど。

$taxonomy

タクソノミーの名称。カテゴリならcategory、タグならpost_tagなど。

返り値

bool

指定したオブジェクトで、指定したタクソノミーを利用できる場合はtrue、利用できない場合はfalseが返る。

関数

この関数内で利用している、別のWordPress関数です。

サンプルコード

記事でカテゴリを利用できるか?

通常の記事である投稿オブジェクト(post)でカテゴリが利用できるかを確認します。デフォルトでは、記事はカテゴリー(category)、タグ(post_tag)といったタクソノミーを利用して分類できるので、trueが返るはずです。

php

<?php
	// 実行
	$result = is_object_in_taxonomy( "post", "category" ) ;

	// 結果
	var_dump( $result ) ;

結果 (出力内容) - PHP7.0.13

bool(true)

固定ページでカテゴリを利用できるか?

デフォルトでは、固定ページオブジェクト(page)は、カテゴリー(category)やタグ(post_tag)を使って分類できません。つまり利用できないため、falseが返るはずです。

php

<?php
	// 実行
	$result = is_object_in_taxonomy( "page", "category" ) ;

	// 結果
	var_dump( $result ) ;

結果 (出力内容) - PHP7.0.13

bool(false)

ソースコード

wp-includes/taxonomy.php

/**
 * Determine if the given object type is associated with the given taxonomy.
 *
 * @since 3.0.0
 *
 * @param string $object_type Object type string.
 * @param string $taxonomy    Single taxonomy name.
 * @return bool True if object is associated with the taxonomy, otherwise false.
 */
function is_object_in_taxonomy( $object_type, $taxonomy ) {
	$taxonomies = get_object_taxonomies( $object_type );
	if ( empty( $taxonomies ) ) {
		return false;
	}
	return in_array( $taxonomy, $taxonomies );
}

参考リンク