Тестирование темы WordPress, проверка в режиме отладки

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

WordPress Debug

Оглядываясь на 2010 год, когда я стоял на пороге открытий и впервые знакомился с WordPress, вспоминаю с каким трудом мне приходилось делать первые шаги. Для каждой элементарной задачи находил и устанавливал плагины, их общее число могло достигать нескольких десятков! 😮 Затем наступило время переосмысления и стремления к минимализму. В рубрике Оптимизация отражены некоторые аспекты проделанной мною работы по ускорению блога.

Включаем режим отладки WordPress

Шаблон блога с первых дней претерпевал изменения, обрастая новыми функциями, стилями, классами. Набрав критическую массу, он стал неповоротлив — очень сложно поддерживать рабочее состояние и высокую производительность. Невидимые, на первый взгляд, большие изменения произошли в прошлом году — начиная от новой верстки и работы с миниатюрами, заканчивая микроразметкой Schema.org.

Первым делом после преобразований открыл консоль разработчика в браузере и проверил наличие ошибок и предупреждений. Следующий шаг — отладка WordPress. Режим включается в файле конфигурации wp-config.php, найдите в нем строку:

define('WP_DEBUG', false);

и замените значение false на true. Строка должна получить вид:

define('WP_DEBUG', true);

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

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

Предупреждение основано на одном простом факте: сообщение об ошибке содержит абсолютный путь к файлу относительно корневой директории сервера. Сообщение видит не только администратор, а все пользователи. Наглядный пример:

Parse error: syntax error, unexpected ‘endif’ (T_ENDIF) in /u57109403/data/www/site.ru/wp-content/themes/default/index.php on line 23

Как видно из примера, значение u57109403 может являться логином доступа к серверу и злоумышленникам остается только подобрать пароль. Будьте бдительны.

Theme Check — инструмент для тестирования темы WordPress

Помимо встроенной функции WP_DEBUG есть хороший инструмент разработчика, предназначенный для тестирования темы на соответствие современным стандартам Кодекса.

Theme Check

Он реализован в виде плагина Theme Check, который Вы можете загрузить с официальной страницы репозитория.

После активации плагина перейдите на его страницу (Внешний вид — Theme Check). При отключенном режиме отладки Вы увидите сообщение:

WARNING WP_DEBUG is not enabled! Please test your theme with debug enabled before you upload!

Как активировать этот режим я рассказал в первой части статьи. Делать это не обязательно, но очень желательно для полноты анализа. Чтобы запустить проверку нажмите «Check it».

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

INFO: Non-printable characters were found in the single.php file. You may want to check this file for errors.

Вы можете отключить показ таких сообщений, поставив галочку напротив «Suppress INFO». Заметка на будущее: при локализации темы используйте специальные файлы перевода ru_RU.po и ru_RU.mo, вместо того чтобы редактировать исходный код, заменяя английские слова на русские.

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

Плагин Theme Check будет полезен разработчикам тем WordPress и администраторам сайтов. Отчет строится на основе проверки стандартного набора минимальных требований в текущей теме и содержит следующие обозначения:

  • Required — отсутствует необходимая функция, класс или описание;
  • Warning — предупреждения, например, о наличии скрытых файлов;
  • Recommended — рекомендации о возможном применении новых функций;
  • Info — прочие информационные сообщения.

Большинство невыполненных требований подкреплено ссылками на Кодекс с описанием функций и параметров. Впрочем, отчет и без того достаточно информативный. Небольшой фрагмент:

Ошибки в теме WordPress

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

Благодаря режиму отладки и плагину Theme Check мне удалось выявить ряд проблем, причиной которых являлись устаревшие функции ВордПресс. Некоторые доработки в functions.php удалил за ненадобностью или заменил на стандартные решения, которые появились в последних версиях. Рекомендую проверить свои блоги!

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(3 голоса, в среднем: 5 из 5)
  1. Вячеслав

    Надо же как всё изменилось за последнее время! И всё равно довольно сложно для понимания)

    Наверно, нужно прибегать к специалистов и пользоваться их услугами для отладки своих «устаревших» блогов…

    Ответить

  2. Webliberty

    Помощь специалистов не потребуется, чтобы разобраться понадобиться минимальный набор знаний. Theme Check дает подсказки, указывает на строки где требуются правки и приводит в качестве справки ссылки на статьи из Кодекса.

    Ответить

  3. Алексей

    Привет Денис! Ждал твоей новой статьи и вот наконец таки дождался! А то я уже испугался, не забросил ли ты свой сайт. Последняя статья была 19.03.2015. Прочитал и мне как всегда понравилось, хоть я пока и не совсем понимаю некоторые моменты. Сказывается скудное познание в области сайтостроения) Спасибо за статью! Как и все прочие, данная тема будет полезна всем вебмастерам и таким новичкам как я 🙂

    Ответить

  4. GladWeb

    Действительно, долго ты отсутствовал, Денис 😉

    Хотя, глядя на твой блог, думаю ты правильно делаешь, лучше писать редко, но метко. Как и всегда, все красиво оформлено и качество контента на высоте!

    Ответить

  5. Webliberty

    Я долго собирался с мыслями. Не придерживаюсь никакого графика, пишу под настроение, когда есть время и желание)

    Спасибо за добрые слова 🙂

    Ответить

  6. Алекс

    Я вам там на форуме писнул)))

    Скажите, а в Вашем понимании «устаревшая тема» это как!? …годов эдак 2010-х? Это я к тому, что и совершенно новенькие (тему и движок) можно ухлопать сегодня.

    Начинающий, как правило, пользуется запросом в поисковик, а там… а там… а там ВЫДАЧА того же ДЕСЯТОГО ГОДА (и не обратив внимание на дату) он принимается «совершенствовать» своё детище. Вот!

    А Вы правильно, на мой взгляд, — продолжаете работу — вижу знакомые цифры даты статьи 2015-й. Жму руку.

    Ответить

  7. Webliberty

    Устаревшая тема в моем понимании — это такая тема, которая не применяет доступные «из коробки» функции и вместо стандартных использует костыли. С учетом того, что обновления WP выходят довольно часто, то любая тема в теории может считаться таковой спустя несколько месяцев.

    Например, начиная с версии 4.1 у WordPress имеется встроенная функция постраничной навигации the_posts_pagination. Если раньше приходилось устанавливать плагин WP-PageNavi или использовать аналогичные решения, то сейчас это легко реализуется без лишнего кода:

    <?php paginate_links(); ?>

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

    Расскажу о своем опыте работы с форумом на phpBB. Там все гораздо сложнее в плане обновлений. Официально выпускается всего 2 темы, которые поддерживают разработчики и их функционал целиком завязан на ядро. Обновляя движок каждый раз приходится вручную построчно вносить изменения в свои файлы шаблона — это осуществляется с помощью сравнений в патч-файлах. Иначе в один прекрасный день форум просто перестанет работать. Пользователи ВордПресс не привыкли к таким трудностям.

    Ответить

  8. zmoe

    Все это хорошо, но чтобы привести все в божеский вид, даже зная о проблемах, нужно хоть немного понимать в php и html — а таких много? 🙄

    Ответить

  9. Webliberty

    Конечно, статья не на всех рассчитана и пригодится узкому кругу лиц. Но я искренне надеюсь, что стремление лучше изучить WordPress присутствует у большинства!

    Можно получить права и ездить на машине. В самый неподходящий момент она сломается и вокруг никого не окажется, кто бы смог помочь ее починить. Также и с сайтами. Если владелец одновременно является и автором, и администратором, то рано или поздно придется самому углубляться в верстку и программирование, заниматься техническим обслуживанием.

    Ответить

  10. Сергей

    Денис, привет! Хороший инструмент Theme Check, надо проверить в свободное время свою тему, а то был уже момент с выводом хлебных крошек.

    Ответить

  11. Александр

    Полезная стать, спасибо Вам большое! О Theme Check слышал раньше, но только теперь воспользовался.

    Ответить

  12. ladybloger

    Да, WordPress с каждым годом становится всё лучше, проще и удобнее для пользователя. Так и должно быть.

    Ответить

  13. Webliberty

    Простота и удобство — наверно первое, на что обращает внимание рядовой пользователь, однако администратору сайта очень важна гибкость и функциональность ядра. Главное чтобы не дошло до крайности и WordPress не превратился в ограниченную по возможностям систему.

    Ответить

  14. Владимир

    Я тоже надеюсь, что ВП не превратится в медленную громоздкую машину)

    Ответить

  15. Артем Губтор

    Спасибо за статью. Хоть и прочитал ее год спустя, думаю ее актуальность по прежнему в силе. Я понял, что если уж браться за ведение блога, то нужно делать его идеальным.

    Ответить

  16. Beklem

    Мне понадобилась строка debug.
    А на все остальное из проверки плагином решила не реагировать, так как построена тема на конструкторе для WordPress, давно признанном. Ладно еще когда пишу руками все… Вот и верь после этого плагинам-помощникам 😉

    Ответить

:) ;) :D :( :cry: :| :o :P 8-) :oops: :roll: :idea:

Отправляя комментарий, вы соглашаетесь с политикой конфиденциальности.