Je souhaite modifier $ path dans le filtre suivant. Il a 1 entrée et 2 arguments.
function documents_template( $template = '' ) {
$path = DOCUMENTS_INCLUDES_DIR . '/document/' . $template;
return apply_filters( 'document_template', $path, $template );
}
Ceci est ma fonction pour ajouter un filtre, il obtient un message d'erreur, comment le faire correctement?
function my_template( $template = '' ){
$path = MY_INCLUDES_DIR . '/document/'. $template;
return $path;
}
add_filter( 'document_template','my_template', 10, 2 );
J'ai essayé de changer ma valeur de retour comme suit, cela ne fonctionne pas non plus:
return apply_filters( 'my_template', $path, $template);
Avec les réponses ci-dessous, mon nouveau filtre ne fonctionne toujours pas, alors, c'est peut-être parce que mon filtre est dans une classe? voici le tout nouveau code:
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;
}
}
Ceux-ci doivent correspondre, mais ne:
et
document_template
! =documents_template
Sinon, tout semble correct.
Éditer
Attendez, tout ne semble pas correct. Je ne pense pas que vous souhaitiez ajouter un paramètre à votre définition de fonction de rappel. Au lieu de cela, vous devez définir
$template
dans le rappel, ou simplement le renvoyer sans modification. Alors, remplacez ceci:...avec ça:
par exemple:
Modifier 2
D'accord, petite erreur de ma part. Essayez ceci comme rappel:
la source