Статья рассказывает, как запрограммировать пакетное внесение изменений в файлы темы WordPress.

Один раз запрограммированный пакет исправлений и дополнений позволяет в будущем:

  • восстановить изменения в файлах темы WordPress при ее обновлении
  • перенести изменения в другую тему
  • вести несколько вариантов изменений

Дочерние темы или правка файлов

Обычно в файлы темы, например, в такие файлы, как style.css, functions.php, header.php, footer.php вносятся изменения для настройки внешнего вида или добавления новых возможностей. Но, поскольку при обновлении версии темы обновляются и её файлы, то сделанные изменения при этом теряются.

Разработчики WordPress ввели для этого специальный вид тем — дочерние темы.

Дочерняя тема WordPress — это тема, которая расширяет функционал другой темы, называемой родительской темой, и позволяет вам изменять или дополнять функционал родительской темы.

Подробнее о создании и настройке дочерней темы можно прочитать в документации WordPress по ссылке Дочерние темы.

В тех случаях, когда дочерние темы не используются, а изменения вносятся путем редактированием файлов темы, можно запрограммировать пакетное внесение изменений файлов, которое потом можно повторно использовать в любой момент.

Кроме того, некоторые изменения проще внести редактированием файла style.css рабочей темы, чем созданием дочерней темы.

  • например, одинаковую смену шрифта у большого количества элементов

Запрограммировать пакетные изменения, то есть внесение нескольких изменений одним действием, можно с помощью программы nhrt.

Бесплатная консольная программа nhrt (nhutils replace text выполняет замену и вставку текста в файлах, с поддержкой регулярных выражений. Программа работает из командной строки Windows и может быть использована в пакетных файлах.

Изменение шрифта темы WordPress в bat файле

Этот пример показывает, как решить проблему шрифта в теме Spacious, применяемой в данный момент на этом сайте. Тема Spacious использует по умолчанию шрифт Lato, не имеющий поддержки кириллицы, поэтому английские символы показываются шрифтом Lato, а вместо русских букв подставляется Arial, то есть два шрифта смешиваются.

Чтобы указать использование вместо Lato другого шрифта с поддержкой кириллицы, например, Open Sans, необходимо:

  • зарегистрировать шрифт Open Sans в файле functions.php
  • заменить Lato на Open Sans в файле style.css

Регистрация шрифта в файле functions.php

Регистрации шрифта Open Sans с поддержкой кириллицы осуществляется добавлением в inc/functions.php следующей строки:

wp_register_style( 'google_fonts', '//fonts.googleapis.com/css?family=Open+Sans:300i,400,400i,700&subset=cyrillic' );

В программе nhrt это делается командой:

nhrt -insert_after -spt:"wp_register_style( 'google_fonts', '//fonts.googleapis.com/css?family=Lato' );" -et:"\n\twp_register_style( 'google_fonts', '//fonts.googleapis.com/css?family=Open+Sans:300i,400,400i,700&subset=cyrillic' );" -cp:utf8 -o:d -notitle inc\functions.php

Добавление указывается параметром -insert_after, который вставляет новый текст после найденного. Если нет необходимости сохранять в файле строку регистрации старого шрифта Lato, можно делать замену текста вместо вставки, просто убрав параметр insert_after.

Текст для поиска задается параметром -spt.

Текст для вставки, то есть строка регистрации шрифта Open Sans задается параметром -et, в тексте также добавлены символы перевода строки.

Замена шрифта в файле style.css

Смена шрифта делается обычной заменой текста -spt / -t:

nhrt -spt:"'Lato'" -t:"'Open Sans'" -cp:utf8 -o:d -notitle style.css

После выполнения команды все вхождения 'Lato' будут заменены на 'Open Sans'.

Итоговый командный файл

Bat файл для смены шрифта включает рассмотренные выше команды.

Чтобы предотвратить повторное добавление строк, проверяется код возврата первой команды – работа завершается, если не найдено вхождение 'Lato'.

nhrt -spt:"'Lato'" -t:"'Open Sans'" -cp:utf8 -o:d -notitle style.css || exit /b 0
nhrt -insert_after -spt:"wp_register_style( 'google_fonts', '//fonts.googleapis.com/css?family=Lato' );" -et:"\n\twp_register_style( 'google_fonts', '//fonts.googleapis.com/css?family=Open+Sans:300i,400,400i,700&subset=cyrillic' );" -cp:utf8 -o:d -notitle inc\functions.php

Естественно, в этот bat файл можно вставлять и другие команды для добавления новых возможностей на сайт, и тогда запуск одного bat файла будет вносить весь необходимый пакет изменений.

Узнать больше

Страница программы nhrt — /blog/nhrt/ с описанием.

Справка по программе nhrt — /blog/nhrt/help/

Пакетное изменение css и php файлов WordPress в nhrt
Метки:     

Одна мысль о “Пакетное изменение css и php файлов WordPress в nhrt

  • 18.11.2020 в 19:54
    Постоянная ссылка

    Благодарю еще раз за программу и труд по ее написанию и обновлени.

    Моя задача почти такая же как, описана в теме выше, только для Joomla и внесение изменений в код расширения для поиска и замены (добавления) языковых фраз.
    После обновления расширения Разработчиками, при запуске пакетного изменения файлов по списку поиска-замен, нужно точно знать сколько успешно выполнено. Чтобы вовремя заметить, что Разработчики, наконец-то обратили своё внимание на вопросы и предложения на своём форуме поддержки и внесли изменения в код. И пакетное изменение каких-то строк может стать лишним, а то и «опасным». Бываю и более веселые замены после таких изменений.
    Благодарю.

    Ответ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *