워드프레스 필터에 추가 파라미터를 전달하는 방법은?
add_filter('wp_list_pages_excludes', 'gr_wp_list_pages_excludes');
function gr_wp_list_pages_excludes($exclude_array) {
$id_array=$array('22');
$exclude_array=array_merge($id_array, $exclude_array);
return $exclude_array;
}
저는 워드프레스를 처음 접하는 사람입니다.위의 코드는 정상적으로 작동합니다.그러나 gr_wp_list_pages_excluds 함수에 $mu_cust_arg와 같은 추가 인수를 전달해야 합니다.apply_filters 또는 다른 방법으로 사용하려면 어떻게 해야 합니까?어떤 도움이든 감사히 받겠습니다.
미리 감사드립니다.
필터/액션에 여러 개의 인수를 추가할 수 있습니다. WordPress에 예상되는 인수의 수를 알려주면 됩니다.
예를 들어, 작동하지 않습니다.
add_filter('some_filter', function($argument_one, $argument_two) {
// won't work
});
apply_filters('some_filter', 'foo', 'bar'); // won't work
너무 많은 인수가 제공되었다는 오류와 함께 실패합니다.
대신 다음을 추가해야 합니다.
add_filter('some_filter', function($argument_one, $argument_two) {
// works!
$arugment_one; // foo
$arugment_two; // bar
}, 10, 2); // 2 == amount of arguments expected
apply_filters('some_filter', 'foo', 'bar');
WP는 폐쇄를 콜백으로 받아들이지 않기 때문입니다(적어도 확실히 그렇지는 않습니다).add_filter()
)의 짧은 대답은 "할 수 없다" 입니다.적어도, 단정하게는 아닙니다.
여기에는 당신이 무엇을 하고 있는지에 따라 몇 가지 선택사항이 있습니다.첫번째가 가장 좋지만 사용하지 못할 수도 있습니다.
함수를 호출하는 래퍼 함수를 작성합니다.
function gr_wp_list_pages_excludes_1 ($exclude_array) {
$custom_arg = 'whatever';
gr_wp_list_pages_excludes_1($exclude_array, $custom_arg)
}
이것은 주어진 상황에서 항상 동일한 사용자 지정 인수를 전달하는 경우에만 작동합니다. 각 다른 상황에 대해 이러한 래퍼 함수 중 하나를 작성하고 래퍼 함수의 이름을 전달합니다.add_filter()
. 아니면, 진정으로 역동적이기를 원한다면...
전역 변수 사용: (참조: 변수 범위, )
function gr_wp_list_pages_excludes($exclude_array) {
global $gr_wp_list_pages_excludes_custom_arg;
$id_array=$array('22');
$exclude_array=array_merge($id_array, $exclude_array);
return $exclude_array;
}
이 방법을 사용하면 원하는 데이터를 에 할당하여 함수에 전달할 수 있습니다.$gr_wp_list_pages_excludes_custom_arg
세계적인 범위에서이것은 일반적으로 잘못된 관행으로 간주되며 심하게 눈살을 찌푸리게 하는데, 이는 지저분하고 읽을 수 없는 코드를 만들고 추가 변수로 메모리 공간을 어수선하게 만들기 때문입니다.변수 이름을 매우 길고 충돌을 피하기 위해 함수에 고유하게 만들었습니다. 전역 변수를 사용할 때의 또 다른 문제입니다.이 방법은 효과가 있겠지만 꼭 사용해야 할 경우에만 사용하십시오.
아주 간단해요!
add_filter('filter_name','my_func',10,3); //three parameters lets say..
my_func($first,$second,$third){
//............
}
그리고나서
echo apply_filters('filter_name',$a,$b,$c);
언급URL : https://stackoverflow.com/questions/11753484/how-to-pass-additional-parameter-to-wordpress-filter
'programing' 카테고리의 다른 글
wp_insert_post를 사용하여 특징 이미지 설정 (0) | 2023.10.30 |
---|---|
플래시가 설치되어 있는지 확인하고, 설치되어 있지 않은 경우 사용자에게 알려주는 숨겨진 디바를 표시하려면 어떻게 해야 합니까? (0) | 2023.10.30 |
CSS로 점멸/점멸 문자를 만드는 방법 3 (0) | 2023.10.30 |
각도 변환을 사용하여 번역을 표시하는 방법은 무엇입니까? (0) | 2023.10.30 |
각.json과 $scope의 차이.$eval을 JSON 문자열에 적용할 경우 (0) | 2023.10.30 |