Quero modificar $ path no seguinte filtro. Possui 1 entrada e 2 args.
function documents_template( $template = '' ) {
$path = DOCUMENTS_INCLUDES_DIR . '/document/' . $template;
return apply_filters( 'document_template', $path, $template );
}
Esta é a minha função de adicionar filtro, recebe uma mensagem de erro, como fazer isso certo?
function my_template( $template = '' ){
$path = MY_INCLUDES_DIR . '/document/'. $template;
return $path;
}
add_filter( 'document_template','my_template', 10, 2 );
Tentei alterar meu valor de retorno da seguinte forma: também não funciona:
return apply_filters( 'my_template', $path, $template);
Com as respostas a seguir, meu novo filtro ainda não está funcionando. Talvez seja porque meu filtro esteja em uma classe? aqui está o código completamente novo:
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;
}
}
Eles precisam corresponder, mas não:
e
document_template
! =documents_template
Caso contrário, tudo parece correto.
Editar
Espere, nem tudo parece correto. Eu não acho que você deseja adicionar um parâmetro à sua definição de função de retorno de chamada. Em vez disso, você precisa definir
$template
dentro do retorno de chamada ou simplesmente devolvê-lo sem modificação. Então, substitua isto:...com isso:
por exemplo:
Editar 2
Ok, pequeno erro da minha parte. Tente isso como seu retorno de chamada:
fonte