Поддержка Проблемы и решения Как the_title разбить на две части

  • Возникла необходимость выводить заголовок следующим образом:
    <H1>Привет всем,<\br>это интересный <span>заголовок<span><H1>
    Как такое можно реализовать, если ВП в основном выводит через the_title?
    Или всё-таки возможно разбить необходимым образом the_title?
    Если возможно разбить таким образом the_title, то как это сделать?

Просмотр 10 ответов — с 1 по 10 (всего 10)
  • Модератор Юрий

    (@yube)

    Ничего не понял….

    Модератор Юрий

    (@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()). Больше, чем передается, принять не получится. Меньше — можно.

    Звиздец…. вынос мозга с ожиданием )))
    Осталось теперь придумать сам код, да и так, чтобы он был рабочим )))
    В любом случае СПС, жаль что с самого начала не написали про всё это…
    Но тема всё же не закрыта.
    Код всё таки не смогу написать, хоть и некоторые крупицы уже разложил по полочкам…

Просмотр 10 ответов — с 1 по 10 (всего 10)