Я хочу изменить $ path в следующем фильтре. Имеет 1 вход и 2 аргумента.
function documents_template( $template = '' ) {
$path = DOCUMENTS_INCLUDES_DIR . '/document/' . $template;
return apply_filters( 'document_template', $path, $template );
}
Это моя функция, чтобы добавить фильтр, он получает сообщение об ошибке, как сделать это правильно?
function my_template( $template = '' ){
$path = MY_INCLUDES_DIR . '/document/'. $template;
return $path;
}
add_filter( 'document_template','my_template', 10, 2 );
Я попытался изменить свое возвращаемое значение следующим образом, оно тоже не работает:
return apply_filters( 'my_template', $path, $template);
С ответами ниже, мой новый фильтр все еще не работает, так что, может быть, это потому, что мой фильтр в классе? вот совершенно новый код:
Class My_Class{
function __construct() {
add_filter( 'document_template', array( $this, 'my_template',10, 2 ) );
}
function my_template( $path, $template ){
$path = MY_INCLUDES_DIR . '/document/'. $template;
return $path;
}
}
Они должны соответствовать, но не:
а также
document_template
знак равноdocuments_template
В противном случае все выглядит правильно.
редактировать
Подождите, не все выглядит правильно. Я не думаю, что вы хотите добавить параметр в определение функции обратного вызова. Вместо этого вам нужно определить
$template
обратный вызов или просто передать его без изменений. Итак, замените это:...с этим:
например:
Редактировать 2
Хорошо, небольшая ошибка с моей стороны. Попробуйте это как ваш обратный звонок:
источник