• Здравствуйте, уважаемые участники форума. Вот решил сменить тему оформления на своём блоге. В общем то, всё шло хорошо, пока я не обнаружил, что на страницах категорий, поиска, 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/Дочерние_темы

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

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

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

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

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

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

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

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

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

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

    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. Ещё один минус — это растущий стек хуков.. Их и так немало в движке 🙂

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

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

Тема «Как сменить h1на h2 через functions.php» закрыта для новых ответов.