Wordpress에서 액션 우선순위를 변경하려면 어떻게 해야 합니까?
어린이 테마로 주제 틀을 사용하고 있습니다.여러 개의 훅이 있지만 특히 주제_header()를 보고 있습니다.주제_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);
?>
행동의 내용은 무관합니다.
제 질문은 다음과 같습니다.문제의 5가지 액션의 우선순위를 변경하려면 어떻게 해야 합니까?예를 들어 tematic_access()가 tematic_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');
그건 아주 간단한 일을 하는 멍청한 방법 같아.WP에 액션을 저장하는 데이터 구조에 접근하여 정렬/재주문할 수 있는 방법이 있는가?
훅이 기본 10 이외의 priority를 사용하여 등록되어 있는 경우 remove_action 콜에서도 priority를 지정해야 합니다.
그래서 먼저 다음을 사용하여 제거할 수 있을 것 같습니다.
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 플러그인을 통해 코드화되지 않는 솔루션을 제공하기 위해 몇 가지 작업을 수행했습니다.내 플러그인을 사용하면 UI를 통해 다양한 등록된 후크의 우선순위를 설정하고 실행 시 코드가 수정되지 않도록 덮어쓰기를 수행할 수 있습니다.
이것이 누군가에게 도움이 될 경우에 대비하여, 가변 액션은 다음과 같이 저장됩니다.
global $wp_filter;
var_dump( $wp_filter[$hook_name] );
액션이 추가되었을 때 키가 우선순위가 되는 배열입니다.
언급URL : https://stackoverflow.com/questions/12539947/how-can-i-change-action-priority-in-wordpress
'source' 카테고리의 다른 글
jQuery의 .append()를 통해 DOM 요소(각도 지시어)를 추가하는 방법 (0) | 2023.03.10 |
---|---|
ng-options 바인딩된 선택 요소에 대해 선택한 값 설정 (0) | 2023.03.10 |
로컬 스토리지에 객체 어레이를 저장하는 방법 (0) | 2023.03.10 |
React-Native에서 실패한 propType on Image 구성 요소 (0) | 2023.03.10 |
Wordpress 투고 전용 커스텀 퍼멀링크 (0) | 2023.03.10 |