Чтобы зарегистрировать собственную таксономию до того, как WooCommerce создаст тип поста «Product», вам нужно использовать более ранний хук в WordPress. WooCommerce загружает свои типы постов во время инициализации, но события, происходящие до этого, могут быть обработаны с помощью хука `plugins_loaded`.
Вот пример, как это можно сделать:
```php
add_action( 'plugins_loaded', 'my_custom_taxonomy' );
function my_custom_taxonomy() {
// Проверяем, загружен ли WooCommerce
if ( class_exists( 'WooCommerce' ) ) {
$args = array(
'hierarchical' => true,
'labels' => array(
'name' => _x( 'Моя Таксономия', 'taxonomy general name' ),
'singular_name' => _x( 'Моя Таксономия', 'taxonomy singular name' ),
'search_items' => __( 'Искать по Мой Таксономия' ),
'all_items' => __( 'Все элементы Мой Таксономия' ),
'parent_item' => __( 'Родительский элемент' ),
'parent_item_colon' => __( 'Родительский элемент:' ),
'edit_item' => __( 'Редактировать элемент' ),
'update_item' => __( 'Обновить элемент' ),
'add_new_item' => __( 'Добавить новый элемент' ),
'new_item_name' => __( 'Новое имя элемента' ),
'menu_name' => __( 'Моя Таксономия' ),
),
'public' => true,
'rewrite' => array( 'slug' => 'my_taxonomy' ),
);
register_taxonomy( 'my_taxonomy', array( 'product' ), $args );
}
}
```
### Разбор кода
1. **Хук `plugins_loaded`**: Этот хук вызывается после загрузки всех установленных плагинов, что позволяет нам убедиться, что WooCommerce уже загружен, прежде чем мы зарегистрируем нашу таксономию.
2. **Проверка на наличие WooCommerce**: Мы проверяем, существует ли класс `WooCommerce`, чтобы избежать ошибок, если плагин выключен или недоступен.
3. **Регистрация таксономии**: Используйте функцию `register_taxonomy` для создания таксономии, привязанной к типу поста «product».
Эта реализация обеспечит правильную регистрацию вашей таксономии до создания типа поста WooCommerce «Product». Не забудьте задать правильные аргументы в `$args` в зависимости от ваших потребностей.