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

Тэги:

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

Что делать, если шаблон нравится, но работает с ошибками? Искать! Искать эти самые ошибки и править их, пока все не заработает :) Обычно, подсказка выдается прямо на странице блога, при попытке запустить его с установленной кривой темой. В том месте, где что-то не так, выпадает Error с описанием в какой именно строке кода этот самый error можно обнаружить. Чаще всего такое происходит в сайдбаре и вот почему: там сосредоточено наибольшее количество всевозможных вспомогательных блоков, выводящих ссылки, последние комменты, облако тэгов и т.п.

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

<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; ?>. Если забыть про этот “хвост”, то тоже появится сообщение об ошибке. Кстати, такая ошибка возникает часто при перекройке чужих шаблонов, когда необходимые концовки теряются.

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

Вебсовет

rss Подпишитесь на RSS

Или получайте новости на ваш e-mail:

Комментарии (9) на запись “Почему не все шаблоны Вордпресс работают”

  1. Steward 20.02.2009 00:50

    я бы не писал endif; - а писал бы else и дальше сообщение о том, какой плагин следует установить - собственно так всегда и делаю :)

  2. Игорь Квентор 20.02.2009 08:32

    Андрей, в пхп я не силен. :) Расскажи, пожалуйста, чем отличаются endif от else и в каких случаях лучше применять одно или другое.

  3. Сергей М. 20.02.2009 23:25

    Элс вместо ендифа не используется :), только в дополнение - это альтернативное условие, которое заканчивается тем же ендифом (угловые скобки убрал):

    ?php if(условие) :?

    ?php else : ?
    …ошибка…
    ?php endif ?

    Но в хороших темах вся функциональность сделана нормально - в functions.php (можно взять нужный плагин и просто закинуть код из него в этот файл, и проверок не надо будет))

  4. Сергей М. 20.02.2009 23:25

    забыл подписаться

  5. Хроник дня 21.02.2009 07:39

    Извиняюсь, конечно, но если вы не сильны в php, как же вы верстаете шаблоны под wordpress? Просто любопытно.

  6. Светлана 21.02.2009 09:19

    Игорь, я опять сталкиваюсь с непонятным явлением. Капча стоит как у Вас, через Мозиллу, Оперу и Хром все работает, а IE и Maxthon заявляют об ошибке введения (Error: Вы ввели неправильную сумму в поле защиты от спама. Нажмите \”назад\” и попробуйте снова.) и при возврате набранный текст стирается. Мне только что читатель письмо прислал с сообщением. Я проверила - факт. Что же еще надо настраивать, и где именно, чтобы этого не происходило? Многие ведь продолжают IE пользоваться.

  7. Игорь Квентор 21.02.2009 11:09

    Сергей, спасибо! :) Кстати, хорошая идея для поста - как часть плагинов зарядить в файл function.

    Хроник дня, для верстки шаблонов необязательно знать чистое php. Это ведь как конструктор: вы знаете, что колесо - чтобы ехать, а не копать. Есть стандартные заготовки, смысл работы которых можно узнать из того же Кодекса. Просто берешь и ставишь их в нужном месте.

    Светлана, а вы не ставили каких-либо новых плагинов? Возможно, капча с ними конфликтует. Может быть, это снова что-то с кэшем связанное?

  8. Светлана 21.02.2009 14:06

    Игорь, я с этим кэшем вообще не могу разобраться, с чем его едят :) Может быть Вы растолкуете?

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

  9. Игорь Квентор 27.02.2009 09:49

    Кэш штука хитрая. Наличные - они либо есть, либо нет. Шутка! :) Постараюсь на эту тему придумать что-то интересное. А учеба, особливо само-, процесс беспрерывный :)

Трэкбеки

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