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

ВОПРОС

Сейчас я пользуюсь дочерней темой, которая работает на Thematic Framework. Он имеет несколько различных хуков. В основном я работаю с thematic_header, а также использую topic_header для того, чтобы добавить следующие действия:

<?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(). У меня получилось найти только один способ, как это сделать. Он заключается в том, что можно удалить и повторно добавлять определенные действия:

<?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’);

Но как по мне – задача слишком простая и это решение выглядит просто глупо. Есть ли какой-нибудь способ, который позволяет отсортировать или переупорядочить структуру данных?

Полезно : Комплексная работа с комментариями в WordPress(Откроется в новой вкладке браузера)

ОТВЕТ

Вообще для таких случаев уже есть решение. Поэтому тебе нужно сначала удалить все это таким образом:

remove_action(‘thematic_header’, ‘thematic_brandingopen’, 1);
remove_action(‘thematic_header’, ‘thematic_access’, 9);

А затем просто добавить снова с использованием приоритетов:

add_action(‘thematic_header’, ‘thematic_access’, 1);
add_action(‘thematic_header’, ‘thematic_brandingopen’, 2);

 

Полезно : Лучший плагин для защиты от спама