Почему не все шаблоны WordPress работают

Почему не все шаблоны WordPress работают

Иногда бывает находишь интересную темку для WordPress в сети, скачиваешь ее, ставишь у себя на блоге, а она либо совсем не работает, либо работает, но как-то криво, совсем не так, как на красивой картинке.

Зачастую это происходит из-за того, что изначально в шаблоне предполагается установка некоторых плагинов. И если у вас они не установлены, то шаблон может работать с ошибками. Зная эту проблему, многие авторы шаблонов пытаются решить ее, вставляя код необходимых плагинов прямо в файл function.php, имеющийся в каждом шаблоне.

Что делать, если шаблон нравится, но работает с ошибками? Искать! Искать эти самые ошибки и править их, пока все не заработает :)

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

Чаще всего такое происходит в сайдбаре и вот почему: там сосредоточено наибольшее количество всевозможных вспомогательных блоков, выводящих ссылки, последние комменты, облако тэгов и т.п.

Из-за чего, собственно, ошибка? Дело в том, что код вывода какой-либо фишки можно написать полно, а можно сокращенно. Например, возьмем вывод облака тэгов. Обычно в шаблоне этот блок выводился так:

<h3>tag cloud</h3>
<p class="tags"><?php wp_tag_cloud('smallest=8&largest=18&number=0'); ?></p>

То есть, сразу пишем функцию вывода. В этом случае у нас должен быть УЖЕ включен плагин simple-tags. Если его нет, то блог выдаст ошибку, так как не распознает данный код и не примет к действию.

Чтобы такого не происходило, нужно блок оформить дополнительным условием, которое как бы говорит: «Если плагин simple-tags включен, то выполнить указанный далее код. Если же нет — игнорировать». Поэтому правильная запись будет следующая:

<h3>tag cloud</h3>
<?php if ( function_exists('wp_tag_cloud') ) : ?>
<p class="tags"><?php wp_tag_cloud('smallest=8&largest=18&number=0'); ?></p>
<?php endif; ?>

Здесь явно видно, что задано условие (английское слово if). Причем важна как первая часть — <?php if ( function_exists…, так и «добавка» снизу — <?php endif; ?>. Если забыть про этот «хвост», то тоже появится сообщение об ошибке.

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

Что нам все это дает? Если мы не используем какие-то плагины, то проверять нужно файлы шаблона на наличие вставок кода, выводящего данные для этих плагинов. То есть, попросту говоря, убираем весь лишний код. И тогда можно практически любой шаблон заточить под собственные нужды.

Похожие записи:

Оставить комментарий: