Quiero modificar $ path en el siguiente filtro. Tiene 1 entrada y 2 args.
function documents_template( $template = '' ) {
$path = DOCUMENTS_INCLUDES_DIR . '/document/' . $template;
return apply_filters( 'document_template', $path, $template );
}
Esta es mi función para agregar filtro, recibe un mensaje de error, ¿cómo hacerlo bien?
function my_template( $template = '' ){
$path = MY_INCLUDES_DIR . '/document/'. $template;
return $path;
}
add_filter( 'document_template','my_template', 10, 2 );
Traté de cambiar mi valor de retorno de la siguiente manera, tampoco funciona:
return apply_filters( 'my_template', $path, $template);
Con las respuestas a continuación, mi nuevo filtro todavía no funciona, entonces, ¿tal vez es porque mi filtro está en una clase? Aquí está el código completamente nuevo:
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;
}
}
Estos deben coincidir, pero no:
y
document_template
! =documents_template
De lo contrario, todo parece correcto.
Editar
Espera, no todo parece correcto. No creo que quiera agregar un parámetro a su definición de función de devolución de llamada. En su lugar, debe definir
$template
dentro de la devolución de llamada, o simplemente pasarlo sin modificar. Entonces, reemplace esto:...con este:
p.ej:
Editar 2
De acuerdo, un pequeño error de mi parte. Pruebe esto como devolución de llamada:
fuente