• Решено Max_EZ

    (@max_ez)


    Здравствуйте, уважаемые участники форума. Вот решил сменить тему оформления на своём блоге. В общем то, всё шло хорошо, пока я не обнаружил, что на страницах категорий, поиска, 404 ошибки, архивов — два заголовка h1 (заголовок сайта и заголовок категории).
    Поначалу, я полез в файлы темы (по привычке), нашел где прописаны теги h1 и хотел было изменить их на h2. Но, такой вариант, что после каждого обновления темы, вносить изменения — меня не устраивает.
    Хочу сделать изменения через файл functions.php. Подскажите пожалуйста, как прописать функцию замены h1 на h2 (если это возможно в данной ситуации)
    Вот исходный код, который нужно модифицировать через функции темы:

    if ( !is_singular() && is_category() ) {
              $_header_class   = array('archive-header');
              $content    = sprintf( '<h1 class="%1$s">%2$s %3$s</h1>',
                    apply_filters( 'tc_archive_icon', 'format-icon' ),
                    apply_filters( 'tc_category_archive_title' , __( 'Category Archives :' , 'customizr' ) ),
                    '<span>' . single_cat_title( '' , false ) . '</span>'
              );

    Спасибо за ранее!

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Но, такой вариант, что после каждого обновления темы, вносить изменения — меня не устраивает.

    Специально для вас разработчики придумали механизм Дочерних Тем, http://codex.wordpress.org/Дочерние_темы

    Позволяет легально вносить изменения, не сильно беспокоясь о судьбе оригинала 🙂

    Автор Max_EZ

    (@max_ez)

    Дочерняя тема решает эту задачу легко. Согласен. Но, интересно можно ли решить эту задачу через функции темы.

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

    (@yube)

    Но, интересно можно ли решить эту задачу через функции темы.

    Если «после каждого обновления темы, вносить изменения — меня не устраивает«, то нет — functions.php также обновляется при обновлении Темы. Либо делать дочернюю, либо плагинчик.

    Автор Max_EZ

    (@max_ez)

    Юрий, дочернюю тему я создал, файл в котором изменения нужно сделать нашёл. Ручками можно всё подправить. Но, ведь есть функции фильтрации (автозамены), простите если неверно выражаюсь. Уверен, подобный метод автоматизации многим интересен и будет полезен.

    Но, ведь есть функции фильтрации (автозамены), простите если неверно выражаюсь. Уверен, подобный метод автоматизации многим интересен и будет полезен.

    есть. Но вот целесообразность его применения в данном случае весьма сомнительна. Это, как минимум, доп нагрузка.

    ведь есть функции фильтрации

    Не всё так радужно, как может показаться на первый взгляд. Прежде всего — эта «неизвестная величина», которую хотим отфильтровать, должна быть подготовлена к такой участи создателем кода. Если такой подготовки/возможности не предусмотрено, то вы не сможете пойти другим путем, окромя «править код ручками в дочке».

    Покажу на виртуальном примере, как это работает:
    Допустим, я автор темы и сочинил такой код

    echo 'My Content';

    Как бы вы не крутили кубик рубика, то собрать пазл не сможете, только в дочке переписать сей код/файл целиком на свой лад.
    Ладно, теперь я вежливый кодер и написал такой код

    echo apply_filters( 'my_content', 'My Content' );

    В этом примере вы сможете использовать подобный метод автоматизации, таким образом

    function IWantModifyContent( $content ) {
        return 'Yep, it\'s my content now!';
    }
    add_filter( 'my_content', 'IWantModifyContent' );

    Но!
    1. Ваш код должен быть выше (исполняться/подключаться раньше) моего фильтра (такова природа хуков).
    2. Всё-равно придётся использовать фильтр в дочерней теме или своем плагине (иначе — обновление, все дела).
    3. Ещё один минус — это растущий стек хуков.. Их и так немало в движке 🙂

    Автор Max_EZ

    (@max_ez)

    Ребята, спасибо за помощь. Я действительно, даже и не задумался о возросшей доп. нагрузке.
    Теперь принцип реализации мене понятен. Но, как правильно вы подметили — целесообразность нулевая.
    Пойду, и быстренько подправлю ручками 😉 Ещё раз, всем СПАСИБО за помощь!

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Как сменить h1на h2 через functions.php» закрыта для новых ответов.