Używam schematu tematycznego dla tematu dla dzieci. Ma wiele haków, ale w szczególności patrzę na thematic_header(). Haczyk thematic_header() dodaje następujące akcje (poprzez additive):Jak zmienić priorytet akcji w Wordpress?
<?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);
?>
Treść tych działań jest nieistotna.
Moje pytanie brzmi następująco: Jak zmienić priorytety pięciu wymienionych działań. Na przykład chcę załadować thematic_access() przed thematic_brandingopen(). Jedynym sposobem, aby to zrobić, że byłem w stanie zorientować się, to przez usunięcie i ponowne dodanie działań, 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');
to wydaje się głupi sposób osiągnięcia czegoś bardzo prostego. Czy istnieje sposób na dostęp i sortowanie/porządkowanie dowolnej struktury danych przechowującej akcje w WP?
Tak, właśnie to robiłem. Moje pytanie dotyczyło tego, czy istnieje sposób bezpośredniego dostępu do tablicy/jakiejkolwiek aplikacji WP używa do przechowywania priorytetów działań. Będę robił to w ten sposób, ponieważ jestem zbyt leniwy, aby zagłębić się w źródło WP. Wydaje mi się dziwne, że WP nie zapewnia sposobu na zmianę priorytetów działań bez ich usuwania i ponownego dodawania. Pozdrowienia – eldarshamukhamedov
Myślę, że jest to właściwość klasy i może być zadeklarowana jako prywatna/chroniona, ale nie publiczna. Możliwe, że nie ma bezpośredniego dostępu, IMO. –
Na wszelki wypadek, gdy to pomaga komuś, wszystkie podpięte działania są przechowywane w globalnej zmiennej o nazwie $ wp_filter, która jest tablicą z kluczem będącym nazwą haka. – ljelewis