Модератор
Юрій
(@yube)
Это хук, в обработчике которого можно менять содержимое post_title перед выводом, в том числе и разбить по какому-то Вашему алгоритму на части.
я не настолько продвинутый в программировании… Максимум что у меня получается, так это сделать что-то типа того:
<?php the_title('<h1>', '</h1>'); ?>
Судя по этому коду:
function suppress_if_blurb( $title, $id = null ) {
if ( in_category(' blurb', $id ) ) {
return '';
}
return $title;
}
add_filter( 'the_title', 'suppress_if_blurb', 10, 2 );
Я понял так:
В функции должно сработать условие:
если это категории под именем «blurb», то не возвратить никакого ID, кроме заголовка категории под именем «blurb».
Потом идёт фильтр, на основании которого выводится заголовок, а затем то, что должно было быть возвращено самой функцией.
Или я не прав?
Но я не понимаю что за 10 и 2???? Почему, скажем не 33 и 55??
Модератор
Юрій
(@yube)
Но я не понимаю что за 10 и 2???? Почему, скажем не 33 и 55??
Для этого существует Документация (aka Кодекс). add_filter() | Function | WordPress Developer Resources
Судя по вашему ответу, я всё правильно понял до
что за 10 и 2???? Почему, скажем не 33 и 55??
не так ли?
Я только учусь…
Судя по
add_filter( 'the_title', 'suppress_if_blurb', 10, 2 );
можно было и не 10, 2 указать, а 2, 1
Или я не прав?
Модератор
Юрій
(@yube)
Указывать нужно то, что действительно нужно, а не что попало. Если указать 1, то второй параметр просто потеряется и его использование в обработчике будет бессмысленным.
Поскольку нельзя указать второй параметр без первого, если не нужно менять приоритет выполнения фильтра, первым ставят дефолтное значение 10.
Исходя из прочитанного мною и сказанного вами, делаю вывод, что:
( $title, $id = null )
это и есть 2.
Если бы было бы:
( $title, $id = null, $title )
— то было бы 3.
Или я ошибаюсь?
Или всё же к 2 относиться часть функции в виде:
return $title;
???
Модератор
Юрій
(@yube)
то было бы 3.
Точно!
Количество и суть параметров можно посмотреть в документации на хук или в коде, там, где фильтр применяется (вызвана функция apply_fileters()). Больше, чем передается, принять не получится. Меньше — можно.
Звиздец…. вынос мозга с ожиданием )))
Осталось теперь придумать сам код, да и так, чтобы он был рабочим )))
В любом случае СПС, жаль что с самого начала не написали про всё это…
Но тема всё же не закрыта.
Код всё таки не смогу написать, хоть и некоторые крупицы уже разложил по полочкам…