Как изменить приоритет действия в WordPress?

Я использую рамки Thematic для детской темы. У этого есть несколько крючков, но я смотрю thematic_header () в частности. Ключ thematic_header () добавляет следующие действия (через add_action):

<?php add_action('thematic_header', 'thematic_brandingopen', 1); add_action('thematic_header', 'thematic_blogtitle', 3); add_action('thematic_header', 'thematic_blogdescription', 5); add_action('thematic_header', 'thematic_brandingclose', 7); add_action('thematic_header', 'thematic_access', 9); ?> 

Содержание действий не имеет значения.

Мой вопрос таков: как я могу изменить приоритеты пяти рассматриваемых действий. Например, я хочу, чтобы thematic_access () загружался до thematic_brandingopen (). Единственный способ сделать это, который я смог выяснить, – удалить и повторно добавить действия, ala:

 <?php function remove_thematic_actions() { remove_action('thematic_header', 'thematic_access'); add_action('thematic_header', 'thematic_access', 0); //puts it above thematic_brandingopen } add_action ('init', 'remove_thematic_actions'); 

Это похоже на глупый способ сделать что-то очень простое. Есть ли способ доступа и сортировки / изменения порядка хранения данных в WP?

Из WordPress

если крючок был зарегистрирован с использованием приоритета, отличного от значения по умолчанию 10, тогда вы также должны указать приоритет в вызове remove_action ().

Поэтому я думаю, что вы можете сначала удалить, используя следующие

 remove_action('thematic_header', 'thematic_brandingopen', 1); remove_action('thematic_header', 'thematic_access', 9); 

и добавить снова, используя другой priority

 add_action('thematic_header', 'thematic_access', 1); add_action('thematic_header', 'thematic_brandingopen', 2); 

не для самообучения, но я проделал некоторую работу над этим, чтобы предоставить некодирование с помощью плагина WordPress, называемого Prioritize Hooks . Мой плагин позволяет вам устанавливать приоритеты различных зарегистрированных крючков через пользовательский интерфейс и выполняет переопределение во время выполнения, поэтому код не изменяется.

На всякий случай это помогает кому-то, переменные действия хранятся в

 global $wp_filter; var_dump( $wp_filter[$hook_name] ); 

Что представляет собой массив массивов с ключевыми приоритетами, когда действие было добавлено.