Я знаю, что это базовый материал, но я только начинаю изучать действия и фильтры, создав простой плагин (каждый начинает где-то!) С простым действием, чтобы добавить контент, и фильтром, чтобы изменить его.
Вот мой хук действий в файле плагина:
function sushi_add_a_title(){
$title = 'hello world!';
echo $title;
}
add_action( 'wp_head', 'sushi_add_a_title' );
и фильтр-хук в functions.php:
function sushi_change_the_title( $title ){
$title = 'hi world!';
return $title;
}
add_filter( 'wp_head', ‘sushi_change_the_title' );
Я ожидал, что результат изменится с «Привет, мир» на «Привет, мир!» … но без изменений.
Что я делаю неправильно?
Ну, я думаю, что нашел решение и использовал str_replace.
function sushi_add_a_title(){
$title = 'hello world!';
echo apply_filters('a_nice_title' , $title );
}
add_action( 'wp_head', 'sushi_add_a_title');
add_filter('a_nice_title', 'replace_string');
function replace_string($title){
$title = str_replace("hello world!", "Hi world!", $title);
return $title;
}
У вас есть «фигурная цитата» (‘
) в вашем add_filter
линия, которая может нарушить ваш PHP.
add_filter( 'wp_head', ‘sushi_change_the_title' );