unregister_taxonomy_for_object_type() WP 3.7.0

Відкріплює таксономію від зазначеного типу запису (чи іншого об’єкта).

Таксономія має бути зареєстрована на момент спрацьовування цієї функції. Таксономії часто реєструються на хуку init , а функція може викликатися раніше. Тому вона може не спрацьовувати. Майте це на увазі!

Ця функція лише розривається зв’язок між таксономією та типом запису. Фізично таксономія не видаляється. Щоб видалити таксономію (скасувати реєстрацію), використовуйте unregister_taxonomy() .

1 раз – 0.000001 сек
(швидкість світла) | 50000 разів – 0.02 сек
(швидкість світла) |
PHP 7.0.32, WP 5.1

Хуки з функції

Повертає

true|false. True, якщо вдалося відв’язати таксономію.

Використання

unregister_taxonomy_for_object_type( $taxonomy, $object_type );
$taxonomy
(рядок) (обов’язковий)
Ім’я таксономії, що вказується в
register_taxonomy() першим аргументом.
$object_type
(рядок) (обов’язковий)
Назва типу запису, що вказується в
register_post_type() першим параметром.

Приклади

0

#1 Відв’яжемо “Мітки” від “Записів”

Цей приклад відв’яже “Мітки” від “Записів”, тобто в меню “Записи” пропаде пункт “Мітки”, а при редагуванні запису пропаде метабокс “Мітки”. Фізичного видалення таксономії “Мітки” не відбудеться.

add_action( 'init', 'prefix_unregister_tags', 99);
function prefix_unregister_tags(){
	unregister_taxonomy_for_object_type( 'post_tag', 'post' );

	// Теж саме можна зробити і з "Рубриками"
	// unregister_taxonomy_for_object_type( 'category', 'post' );
}

нотатки

  • Global. WP_Taxonomy[]. $wp_taxonomies The registered taxonomies.

список змін

З версії 3.7.0Введено.

Код unregister_taxonomy_for_object_type() WP 6.0.2

function unregister_taxonomy_for_object_type( $taxonomy, $object_type ) {
	Global $wp_taxonomies;

	if ( ! isset( $wp_taxonomies[ $taxonomy ] ) ) {
		return false;
	}

	if ( ! get_post_type_object( $object_type ) ) {
		return false;
	}

	$key = array_search( $object_type, $wp_taxonomies[ $taxonomy ]->object_type, true );
	if ( false === $key ) {
		return false;
	}

	unset( $wp_taxonomies[ $taxonomy ]->object_type[ $key ] );

	/**
	 * Fires після taxonomy є unregistered для object type.
	 *
	 * @ Since 5.1.0
	 *
	 * @param string $taxonomy Taxonomy name.
	 * @param string $object_type Name of the object type.
	 */
	do_action( 'unregistered_taxonomy_for_object_type', $taxonomy, $object_type );

	return true;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *