Функция unregister_taxonomy()
позволяет отменить регистрацию таксономии в WordPress. Это может быть полезно, если вам нужно удалить пользовательскую таксономию, которая была зарегистрирована ранее.
unregister_taxonomy( string $taxonomy ): true|WP_Error
Параметры
- $taxonomy (строка, обязательный): Название таксономии, которую вы хотите удалить.
Возвращаемое значение
- true: Возвращает
true
при успешном удалении. - WP_Error: Возвращает объект
WP_Error
в случае ошибки или если указанная таксономия не существует.
Как работает функция
Функция unregister_taxonomy()
удаляет указанную таксономию из WordPress. При этом будут удалены правила перезаписи ЧПУ, параметры запроса и связанные с таксономией фильтры. Однако следует учитывать, что эта функция не работает со встроенными таксономиями, такими как post_tag
и category
, так как они имеют свойство _builtin = true
.
Хуки
unregistered_taxonomy
: Хук, вызываемый после удаления таксономии.
Пример 1: Удаление пользовательской таксономии
В этом примере мы удаляем таксономию product_category
:
add_action( 'init', 'wpname_unregister_taxonomy' );
function wpname_unregister_taxonomy() {
unregister_taxonomy( 'product_category' );
}
Пример 2: Удаление таксономии «тип проекта»
В следующем примере мы сначала регистрируем таксономию project-type
, а затем отменяем её регистрацию:
if( !function_exists( 'plugin_prefix_unregister_taxonomy' ) ) {
function plugin_prefix_unregister_taxonomy(){
unregister_taxonomy( 'project-type' );
}
}
add_action('init','plugin_prefix_unregister_taxonomy');
Пример 3: Удаление таксономии только на определённых страницах
В этом примере мы сначала регистрируем таксономию genre
, а затем удаляем её только на отдельных страницах:
// Регистрация таксономии
add_action( 'init', 'create_genre_taxonomy' );
function create_genre_taxonomy(){
register_taxonomy('genre', array('book'), array(
'hierarchical' => true,
'labels' => array(
'name' => 'Genres',
'singular_name' => 'Genre',
),
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'genre' ),
));
}
// Удаление таксономии
add_action( 'wp', 'unregister_genre_taxonomy' );
function unregister_genre_taxonomy(){
// Отменяем таксономию только на отдельных страницах
if( ! is_singular() ) return;
unregister_taxonomy('genre');
}
Заключение
Функция unregister_taxonomy()
является полезным инструментом для удаления пользовательских таксономий в WordPress. Она позволяет гибко управлять таксономиями вашего проекта, но помните, что не все таксономии могут быть удалены с её помощью. Используйте её с осторожностью, чтобы избежать путаницы в вашей системе.