Тестирование темы WordPress, проверка в режиме отладки
Всем привет! Время не стоит на месте и каждый раз после очередного обновления WordPress в ядре появляются новые функции. Если раньше большинство нестандартных на тот момент задач приходилось реализовывать с помощью дополнительного программирования, то сейчас ситуация меняется. Прослеживается четкая тенденция расширения функциональности из коробки.
Оглядываясь на 2010 год, когда я стоял на пороге открытий и впервые знакомился с WordPress, вспоминаю с каким трудом мне приходилось делать первые шаги. Для каждой элементарной задачи находил и устанавливал плагины, их общее число могло достигать нескольких десятков! 😮 Затем наступило время переосмысления и стремления к минимализму. В рубрике Оптимизация отражены некоторые аспекты проделанной мною работы по ускорению блога.
Включаем режим отладки WordPress
Шаблон блога с первых дней претерпевал изменения, обрастая новыми функциями, стилями, классами. Набрав критическую массу, он стал неповоротлив — очень сложно поддерживать рабочее состояние и высокую производительность. Невидимые, на первый взгляд, большие изменения произошли в прошлом году — начиная от новой верстки и работы с миниатюрами, заканчивая микроразметкой Schema.org.
Первым делом после преобразований открыл консоль разработчика в браузере и проверил наличие ошибок и предупреждений. Следующий шаг — отладка WordPress. Режим включается в файле конфигурации wp-config.php, найдите в нем строку:
define('WP_DEBUG', false);
и замените значение false
на true
. Строка должна получить вид:
define('WP_DEBUG', true);
При наличии ошибок на месте их появления будет отображено сообщение с описанием проблемы и затронутые файлы. Это могут быть ошибки разбора синтаксиса или устаревшие функции, которые исключены из ядра или заменены на новые.
Предупреждение основано на одном простом факте: сообщение об ошибке содержит абсолютный путь к файлу относительно корневой директории сервера. Сообщение видит не только администратор, а все пользователи. Наглядный пример:
Как видно из примера, значение u57109403
может являться логином доступа к серверу и злоумышленникам остается только подобрать пароль. Будьте бдительны.
Theme Check — инструмент для тестирования темы WordPress
Помимо встроенной функции WP_DEBUG есть хороший инструмент разработчика, предназначенный для тестирования темы на соответствие современным стандартам Кодекса.
Он реализован в виде плагина Theme Check, который Вы можете загрузить с официальной страницы репозитория.
После активации плагина перейдите на его страницу (Внешний вид — Theme Check). При отключенном режиме отладки Вы увидите сообщение:
Как активировать этот режим я рассказал в первой части статьи. Делать это не обязательно, но очень желательно для полноты анализа. Чтобы запустить проверку нажмите «Check it».
Если в исходном коде файлов своей темы Вы используете кириллицу, тогда будьте готовы встретить в отчете информацию подобного рода:
Вы можете отключить показ таких сообщений, поставив галочку напротив «Suppress INFO». Заметка на будущее: при локализации темы используйте специальные файлы перевода ru_RU.po
и ru_RU.mo
, вместо того чтобы редактировать исходный код, заменяя английские слова на русские.
Плагин Theme Check будет полезен разработчикам тем WordPress и администраторам сайтов. Отчет строится на основе проверки стандартного набора минимальных требований в текущей теме и содержит следующие обозначения:
- Required — отсутствует необходимая функция, класс или описание;
- Warning — предупреждения, например, о наличии скрытых файлов;
- Recommended — рекомендации о возможном применении новых функций;
- Info — прочие информационные сообщения.
Большинство невыполненных требований подкреплено ссылками на Кодекс с описанием функций и параметров. Впрочем, отчет и без того достаточно информативный. Небольшой фрагмент:
Относиться к результатам проверки нужно с определенной долей осторожности. Не стоит применять абсолютно все рекомендуемые плагином функции — среди них наверняка найдутся те, которые Вы действительно не планируете использовать.
Благодаря режиму отладки и плагину Theme Check мне удалось выявить ряд проблем, причиной которых являлись устаревшие функции ВордПресс. Некоторые доработки в functions.php удалил за ненадобностью или заменил на стандартные решения, которые появились в последних версиях. Рекомендую проверить свои блоги!
Надо же как всё изменилось за последнее время! И всё равно довольно сложно для понимания)
Наверно, нужно прибегать к специалистов и пользоваться их услугами для отладки своих «устаревших» блогов…
Ответить
Помощь специалистов не потребуется, чтобы разобраться понадобиться минимальный набор знаний. Theme Check дает подсказки, указывает на строки где требуются правки и приводит в качестве справки ссылки на статьи из Кодекса.
Ответить
Привет Денис! Ждал твоей новой статьи и вот наконец таки дождался! А то я уже испугался, не забросил ли ты свой сайт. Последняя статья была 19.03.2015. Прочитал и мне как всегда понравилось, хоть я пока и не совсем понимаю некоторые моменты. Сказывается скудное познание в области сайтостроения) Спасибо за статью! Как и все прочие, данная тема будет полезна всем вебмастерам и таким новичкам как я 🙂
Ответить
Действительно, долго ты отсутствовал, Денис 😉
Хотя, глядя на твой блог, думаю ты правильно делаешь, лучше писать редко, но метко. Как и всегда, все красиво оформлено и качество контента на высоте!
Ответить
Я долго собирался с мыслями. Не придерживаюсь никакого графика, пишу под настроение, когда есть время и желание)
Спасибо за добрые слова 🙂
Ответить
Я вам там на форуме писнул)))
Скажите, а в Вашем понимании «устаревшая тема» это как!? …годов эдак 2010-х? Это я к тому, что и совершенно новенькие (тему и движок) можно ухлопать сегодня.
Начинающий, как правило, пользуется запросом в поисковик, а там… а там… а там ВЫДАЧА того же ДЕСЯТОГО ГОДА (и не обратив внимание на дату) он принимается «совершенствовать» своё детище. Вот!
А Вы правильно, на мой взгляд, — продолжаете работу — вижу знакомые цифры даты статьи 2015-й. Жму руку.
Ответить
Устаревшая тема в моем понимании — это такая тема, которая не применяет доступные «из коробки» функции и вместо стандартных использует костыли. С учетом того, что обновления WP выходят довольно часто, то любая тема в теории может считаться таковой спустя несколько месяцев.
Например, начиная с версии 4.1 у WordPress имеется встроенная функция постраничной навигации
the_posts_pagination
. Если раньше приходилось устанавливать плагин WP-PageNavi или использовать аналогичные решения, то сейчас это легко реализуется без лишнего кода:<?php paginate_links(); ?>
Большинство старых шаблонов по-прежнему могут работать как и прежде, в основном благодаря обратной совместимости. Однако нередко возникают ошибки. В такой ситуации зачастую просто меняют шаблон на более современный, я же предлагаю доработать его самостоятельно и привести к современному стандарту.
Расскажу о своем опыте работы с форумом на phpBB. Там все гораздо сложнее в плане обновлений. Официально выпускается всего 2 темы, которые поддерживают разработчики и их функционал целиком завязан на ядро. Обновляя движок каждый раз приходится вручную построчно вносить изменения в свои файлы шаблона — это осуществляется с помощью сравнений в патч-файлах. Иначе в один прекрасный день форум просто перестанет работать. Пользователи ВордПресс не привыкли к таким трудностям.
Ответить
Все это хорошо, но чтобы привести все в божеский вид, даже зная о проблемах, нужно хоть немного понимать в php и html — а таких много? 🙄
Ответить
Конечно, статья не на всех рассчитана и пригодится узкому кругу лиц. Но я искренне надеюсь, что стремление лучше изучить WordPress присутствует у большинства!
Можно получить права и ездить на машине. В самый неподходящий момент она сломается и вокруг никого не окажется, кто бы смог помочь ее починить. Также и с сайтами. Если владелец одновременно является и автором, и администратором, то рано или поздно придется самому углубляться в верстку и программирование, заниматься техническим обслуживанием.
Ответить
Денис, привет! Хороший инструмент Theme Check, надо проверить в свободное время свою тему, а то был уже момент с выводом хлебных крошек.
Ответить
Полезная стать, спасибо Вам большое! О Theme Check слышал раньше, но только теперь воспользовался.
Ответить
Да, WordPress с каждым годом становится всё лучше, проще и удобнее для пользователя. Так и должно быть.
Ответить
Простота и удобство — наверно первое, на что обращает внимание рядовой пользователь, однако администратору сайта очень важна гибкость и функциональность ядра. Главное чтобы не дошло до крайности и WordPress не превратился в ограниченную по возможностям систему.
Ответить
Я тоже надеюсь, что ВП не превратится в медленную громоздкую машину)
Ответить
Спасибо за статью. Хоть и прочитал ее год спустя, думаю ее актуальность по прежнему в силе. Я понял, что если уж браться за ведение блога, то нужно делать его идеальным.
Ответить
Мне понадобилась строка debug.
А на все остальное из проверки плагином решила не реагировать, так как построена тема на конструкторе для WordPress, давно признанном. Ладно еще когда пишу руками все… Вот и верь после этого плагинам-помощникам 😉
Ответить