Word Press:add_filter를 사용할 때 값을 반환하는 방법
WordPress 코덱스를 여러 번 읽었지만 둘 이상의 인수가 관련된 경우 값을 반환하는 방법을 아직 이해하지 못했습니다.예를 들어 다음과 같습니다.
function bbp_get_topic_title( $topic_id = 0 ) {
$topic_id = bbp_get_topic_id( $topic_id );
$title = get_the_title( $topic_id );
return apply_filters( 'bbp_get_topic_title', $title, $topic_id );
}
위의 필터에는 2개의 인수가 있습니다.내가 할 때add_filter
2개의 값을 반환해야 합니까, 아니면 필요한 값을 반환해야 합니까?다음 예시는 제목이 필요한 경우 맞습니까?
add_filter( 'bbp_get_topic_title', 'my_topic_title', 10, 2 );
function my_topic_title( $title, $topic_id ){
$title = 'my_example_title';
return $title;
}
그건 전적으로 옳아요.
필터를 등록할 때(또는 기본적으로 호출할 때)apply_filters
)는 적용할 필터의 이름과 필터의 적용 대상 값이라는2개 이상의 인수를 사용하여 함수를 호출해야 합니다.
함수에 전달되는 추가 인수는 필터링 함수에 전달되지만 추가 인수가 요청된 경우에만 전달됩니다.다음은 예를 제시하겠습니다.
// Minimal usage for add_filter()
add_filter( 'my_filter', 'my_filtering_function1' );
// We added a priority for our filter - the default priority is 10
add_filter( 'my_filter', 'my_filtering_function2', 11 );
// Full usage of add_filter() - we set a priority for our function and add a number of accepted arguments.
add_filter( 'my_filter', 'my_filtering_function3', 12, 2 );
// Apply our custom filter
apply_filters( 'my_filter', 'content to be filtered', 'argument 2', 'argument 3' );
위의 코드를 지정하면content to be filtered
우선으로 전달되다my_filtering_function1
이 함수는 다음 명령어만 수신합니다.content to be filtered
추가 인수가 아닙니다.
그 후, 컨텐츠는 (에 의해서 처리되고 나서) 통과됩니다.my_filtering_function1
)에 대해서my_filtering_function2
. 이 경우에도 함수는 첫 번째 인수만 받습니다.
마지막으로 콘텐츠는my_filtering_function3
function(앞의 두 기능에 의해 변경됨)이번에는 함수에 대신2개의 인수가 전달되지만(이것을 지정했기 때문에), 이 인수는 취득되지 않습니다.argument 3
논쟁.
출처를 참조해 주세요.
연습add_filter
그리고.apply_filters
우선 알아야 할 것은 이다.apply_filters
두 번째 인수를 반환한다.이것에 대해서,functions.php
:
echo apply_filters('cat_story', 'A cat'); // echoes "A cat"
두 번째로 알아야 할 것은 이전에apply_filters
"A cat"을 반환하고 "A cat"을 수정할 수 있는 필터를 적용합니다.add_filter
:
function add_chasing_mice($cat) {
return $cat . ' is chasing a mice';
}
add_filter('cat_story', 'add_chasing_mice');
echo apply_filters('cat_story', 'A cat'); // echoes "A cat is chasing a mice"
세 번째로 알아야 할 점은 여러 필터를 추가할 수 있다는 것입니다.
// #1
function add_chasing_mice($cat) {
return $cat . ' is chasing a mice';
}
add_filter('cat_story', 'add_chasing_mice');
// #2
function add_something_else($cat) {
return $cat . ', but it\'s not gonna catch it';
}
add_filter('cat_story', 'add_something_else');
echo apply_filters('cat_story', 'A cat'); // echoes "A cat is chasing a mice but it\'s not gonna catch it"
네 번째로 알아야 할 것은 필터를 특정 순서로 적용할 수 있다는 것입니다.
// #1
function add_chasing_mice($cat) {
return $cat . ' is chasing a mice';
}
add_filter('cat_story', 'add_chasing_mice', 10); // 10 - is priority
// #2
function add_something_else($cat) {
return $cat . ', but it\'s not gonna catch it';
}
add_filter('cat_story', 'add_something_else'); // 10 as well, if omitted
// The filter will be applied before `add_chasing_mice` and `add_something_else`
function replace_the_cat($cat) {
return 'A dog';
}
add_filter('cat_story', 'replace_the_cat', 9); // 9 < 10, so the filter will be applied first
echo apply_filters('cat_story', 'A cat'); // echoes "A dog is chasing a mice but it's not gonna catch it";
다섯 번째로 알아야 할 것은 필터에 추가 인수를 전달할 수 있다는 것입니다.
function add_chasing_mice($cat) {
return $cat . ' is chasing mice';
}
add_filter('cat_story', 'add_chasing_mice', 10); // 10 - is priority
function add_something_else($cat, $exclam, $wft) {
return $cat . ', but it\'s not gonna catch it' . $exclam . $wft;
}
add_filter('cat_story', 'add_something_else', 10, 3); // 3 arguments
function replace_the_cat($cat) {
return 'A dog';
}
add_filter('cat_story', 'replace_the_cat', 9); // 9 < 10, so the filter will be applied first
echo apply_filters('cat_story', 'A cat', '!!!', '!1wTf!?');
// 3 arguments are: 'A cat', '!!!', '!1wTf!?'.
// echoes "A dog is chasing a mice but it's not gonna catch it!!!!1wTf!?";
언급URL : https://stackoverflow.com/questions/13797313/wordpress-how-to-return-value-when-use-add-filter
'code' 카테고리의 다른 글
ng-repeat 내에서 ng-click 시 숨겨진 div 표시 (0) | 2023.02.08 |
---|---|
"Unparseable date: 13028677828"이 서버로부터 받은 밀리초 형식의 날짜를 Gson으로 역직렬화하려고 합니다. (0) | 2023.02.08 |
Python에서 JSON으로 일련화가 10진수로 실패함 (0) | 2023.02.08 |
각도 UI 라우터: 상태에 대한 액세스를 방지하는 방법 (0) | 2023.02.08 |
뷰가 열리거나 표시될 때마다 컨트롤러 기능 실행 (0) | 2023.02.08 |