Intereting Posts
Почему я получаю это странное поведение WP_Query, пытаясь выбрать сообщения с определенным тегом? Шаблон таможенной информации о времени таксономии, который фильтрует 2 или более таксономии связать проблему с anker WP Cron запускается, но не работает должным образом Действия строки для пользовательских типов сообщений? WordPress переименовывает теги тегов, используемых в нескольких таксономиях? Как сделать так, чтобы страница всех пользователей не была белым экраном? Как добавить «настраиваемое» поле даты в пользовательский тип сообщения? Список способов доступа к базе данных WordPress? Отменить изменение имени роли пользователя Порядок сортировки wp_list_pages отличается для разных языков Как добавить HTML в шаблон только в том случае, если пользователь вышел из системы / не зарегистрирован Используйте данные $ _POST в functions.php ошибка установки плагина Как обеспечить поддержку shortcode?

Фильтровать существующий крюк с помощью параметра и цикла foreach

Я пытаюсь создать фильтр для добавления настраиваемого столбца на страницу редактирования любой настраиваемой категории, которая может существовать в WordPress. Я знаю, что крючок фильтра должен быть в форме, manage_edit-{$cat}_columns . Предположим, что это функция добавления:

 /* Add custom column to lists */ function add_shortlink_column( $columns ) { return array_merge( $columns, array( 'shortlink' => __( 'Shortlink', 'your_text_domain' ) ) ); } 

Поскольку я хочу охватить ВСЕ пользовательские категории (текущие или будущие), я должен сделать это, используя цикл foreach после вызова get_taxonomies.

Однако add_filter вызывает у меня проблемы …

Предположим, что у меня есть только две категории; темы и product_cat.

Если я попробую, все будет хорошо работать, а столбец будет добавлен:

 $value1 = 'topics'; $value2 = 'product_cat'; $filters = array( "manage_edit-{$value1}_columns", "manage_edit-{$value2}_columns" ); foreach ( $filters as $filter ) { add_filter( $filter, 'add_shortlink_column' ); } 

Однако, если я попробую это, это не сработает.

 $args = array( 'public' => true, '_builtin' => false ); $taxonomies = get_taxonomies( $args, 'names', 'and' ); foreach($taxonomies as $key => $taxonomy) { $filter = "manage_edit-{$taxonomy}_columns"; add_filter( $filter, 'add_shortlink_column' ); } 

Я почти уверен, что это какая-то проблема синтаксиса. Но я не могу понять. Любая помощь приветствуется.

благодаря

Согласно предложению Майло, который указал мне на правильное направление, эта проблема теперь решена.

Все, что я должен был сделать, это …

 add_action( 'init', 'get_custom_tax' ); function get_custom_tax() { $args = array( 'public' => true, '_builtin' => false ); $taxonomies = get_taxonomies( $args, 'names', 'and' ); foreach($taxonomies as $key => $taxonomy) { $filter = "manage_edit-{$taxonomy}_columns"; add_filter( $filter, 'add_shortlink_column', 50, 1 ); } }