UNREGISTER_TAXONOMY() │ WP 4.5.0
Функция unregister_taxonomy() отменяет регистрацию таксономии. Однако ее нельзя использовать для отмены встроенных таксономий (таких как категории и метки).
Производительность функции
- 1 раз — 0.000039 сек (очень быстро)
- 50000 раз — 0.89 сек (очень быстро)
Возвращаемые значения
- Возвращает
trueпри успешном выполнении. - Возвращает
WP_Errorв случае ошибки или если таксономия не существует.
Использование
unregister_taxonomy( $taxonomy );
- $taxonomy (строка, обязательный параметр) — название таксономии, которую вы хотите отменить.
Примеры использования
Пример 1: Удаление таксономии
Предположим, что во время инициализации мы зарегистрировали таксономию "жанр". Затем нам нужно ее отменить.
// Регистрация таксономии
add_action( 'init', 'create_genre_taxonomy' );
function create_genre_taxonomy() {
// Добавляем дерево таксономии 'жанр' (как категории)
register_taxonomy( 'genre', array('book'), array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'genre' ),
) );
}
// Удаление таксономии
add_action( 'init', 'unregister_genre_taxonomy', 99 );
function unregister_genre_taxonomy() {
// Отменяем таксономию только на отдельных страницах
if ( ! is_singular() ) {
return;
}
unregister_taxonomy( 'genre' );
}
Примечания
- Глобальная переменная:
$wp_taxonomies— список всех таксономий.
Изменения
Функция была введена в версии 4.5.0.
Код функции UNREGISTER_TAXONOMY()
function unregister_taxonomy( $taxonomy ) {
global $wp_taxonomies;
if ( ! taxonomy_exists( $taxonomy ) ) {
return new WP_Error( 'invalid_taxonomy', __( 'Некорректная таксономия.' ) );
}
$taxonomy_object = get_taxonomy( $taxonomy );
// Запрещаем отмену встроенных так��ономий.
if ( $taxonomy_object->_builtin ) {
return new WP_Error( 'invalid_taxonomy', __( 'Отмена встроенной таксономии запрещена.' ) );
}
$taxonomy_object->remove_rewrite_rules();
$taxonomy_object->remove_hooks();
// Удаляем таксономию.
unset( $wp_taxonomies[ $taxonomy ] );
/**
* Срабатывает после отмены таксономии.
*
* @since 4.5.0
*
* @param string $taxonomy Название таксономии.
*/
do_action( 'unregistered_taxonomy', $taxonomy );
return true;
}
Связанные функции
edit_term_link()get_edit_term_link()get_taxonomies()get_taxonomy()get_term()get_term_by()get_term_children()get_term_field()get_term_link()get_terms()is_taxonomy_hierarchical()register_taxonomy()register_taxonomy_for_object_type()sanitize_term()sanitize_term_field()single_term_title()taxonomy_exists()term_description()term_exists()term_is_ancestor_of()the_terms()unregister_taxonomy_for_object_type()wp_count_terms()wp_delete_term()wp_get_term_taxonomy_parent_id()wp_insert_term()wp_update_term()wp_update_term_count()
Эта информация поможет вам лучше понять, как отменять таксономии в WordPress и использовать их в вашем проекте.