Я работаю над разработкой плагина WordPress для добавления метаполей в таксономии.Он добавляет их в категории и теги, но не в пользовательские таксономии, зарегистрированные по темам.Кажется, действие плагина выполняется до действия темы, которое регистрирует таксономии.
Я попытался установить более высокий или низкий приоритет для плагина по сравнению с темой, не сработало.
В классе плагина:
add_action( 'init', [ $this, 'registerTaxonomies' ], 1000 );
//...
public function registerTaxonomies() {
$taxonomies = get_taxonomies( [
'public' => true,
'show_in_menu' => true,
], 'objects' );
foreach ( $taxonomies as $taxonomy ) {
add_action( $taxonomy->name . '_add_form_fields', [ $this, 'taxonomyAdd' ], 100, 2 );
add_action( $taxonomy->name . '_edit_form_fields', [ $this, 'taxonomyEdit' ], 100, 2 );
add_action( 'created_' . $taxonomy->name, [ $this, 'taxonomySave' ], 100, 2 );
add_action( 'edited_' . $taxonomy->name, [ $this, 'taxonomyUpdate' ], 100, 2 );
add_filter( 'manage_edit-' . $taxonomy->name . '_columns', [ $this, 'taxonomyColumns' ] );
add_filter( 'manage_' . $taxonomy->name . '_custom_column', [
$this,
'taxonomyColumnContent'
], 100, 3 );
}
}
В теме functions.php:
add_action( 'init', 'rehabtheme_register_post_types', 10 );
add_action( 'init', 'rehabtheme_register_post_types', 10 );
Результатом является то, что для пользовательских таксономий код, присоединенный к действию init, не выполняется, я не получаю пользовательские мета-поля, введенные вформы.