Allow PHP in Posts and Pages
Плагин Allow PHP in Posts and Pages позволяет исполнять php-код прямо в записях или страницах вашего блога. И в отличие от множества других подобных плагинов, этот плагин умеет удалять разметку, которую автоматически вставляет WordPress, что важно, так как сейчас практически никто не отключает встроенное в движок автоформатирование текста.
Скачиваем плагин по ссылке в конце страницы и устанавливаем его:
1. Распаковываем архив.
2. Копируем папку allow-php-in-posts-and-pages в /wp-content/plugins/.
3. Заходим в админку блога на вкладку "Плагины" и активируем плагин.
Плагин создает свое отдельное меню "Allow PHP in Posts", состоящее из двух под-меню: "Allow PHP in Posts" и "Information". По сути, пользоваться настройками вам надо только, если вы будете создавать "сниппеты" кода. Почти все остальное в настройках плагина является справочной информацией.
Сразу после активации плагина вы можете им пользоваться – чтобы вставить php-код в запись достаточно в HTML-режиме редактора обернуть его в теги [php] и [/php]. Объявлять код не надо:
Большинство проблем с плагином может возникнуть из-за встроенного в WordPress автоформатирования текста. Даже справочные примеры php-кода плагина могут не работать по банальной причине – в них используются кавычки (знаки дюйма "), которые WordPress меняет на символы « и ».
Например, если использовать код:
[php] global $user_ID; if($user_ID == 1) { echo "Привет Админ!"; } [/php] |
То вы увидите лишь сообщение об ошибке "Parse error". А единственный недостаток этого кода в использовании в качестве кавычек знаков дюйма. Чтобы понять это, достаточно вставить данный код в дебаг-режиме:
[php debug=1] global $user_ID; if($user_ID == 1) { echo "Привет Админ!"; } [/php] |
Результатом будет:
Сразу становится ясно, что ошибка возникла из-за замененных WordPress знаков дюйма. При любых проблемах с кодом используйте дебаг-режим вставки кода и ошибки станут очевидны.
Жаль, что плагин автоматом не решает проблему с заменой кавычек. Но зато он удаляет всю разметку, которую автоматически вставляет WordPress – никаких неожиданных переводов строки или абзацев текста. Но как вставить переводы строки или абзацы, если они нужны, но плагин их удаляет? Это просто – достаточно обернуть их в квадратные скобки []. В справочной информации плагина даже есть памятка:
То есть вот такой код:
[php] echo '[p]Привет![/p]'; [/php] |
Выдаст:
<p>Привет!</p> |
Правда есть одна тонкость - в рассматриваемой версии плагина эта функциональность работает правильно только при включенной опции "Use the old version (pre 2.2.0) code replacement method" в настройках плагина.
Таким образом, плагин заменяет квадратные скобки на угловые. Но что делать, если вам необходимо использовать квадратные скобки в коде? Достаточно их экранировать через символ \, то есть так:
[php] echo '\[p\]Привет!\[/p\]'; [/php] |
И результатом будет:
[p]Привет![/p] |
В плагине реализована возможность создания "сниппетов" кода. Зайдите в "Allow PHP in Posts\Code Snippets" - тут вы можете создавать и редактировать сниппеты c php-кодом. Это может быть полезно, если вы часто используете один и тот же php-код в ваших записях. Например, создадим сниппет под именем "Hello" со следующим кодом:
Использовать данный сниппет можно нажав на кнопку "Allow PHP" в визуальном редакторе и указав его номер.
Можно также просто вставить нужный сниппет через шорткод [php function=2], где 2 это номер сниппета.
Плагин поддерживает вставку php-кода и в текстовых виджетах:
Плагин не лишен недостатков – одна только запутанная система справки чего стоит, но это единственный подобный плагин, который умеет удалять вставленную WordPress разметку, не удаляя ее вообще из всей записи.
Информация о плагине в репозитории wordpress.org не найдена. Или wordpress.org в данный момент недоступен или плагин был временно удален из репозитория (например, из-за найденной критической ошибки в плагине). Попробуйте найти плагин в репозитории вручную.
Понравился пост? Подпишись на обновления по RSS или Twitter !
#21,
Да, в html-редакторе… Вставил Ваш код и ошибка… Пришёл к выводу, что может быть тема не поддерживает php? Кстати в опциях «Allow PHP in Post and Pages» надо что – то менять? У меня там везде «No:» выбрано…
#22,
просто уточнить - в редакторе две вкладки, визуально и текст - вставлять надо во вкладке текст, иначе вордпресс кавычки испортит.
второе, не знаю про опции - я с опциями по умолчанию играюсь, у меня там Yes стоит на "Use the old (pre 2.2) code replacement method". попробуйте.
#23,
У меня «визуальный редактор» отключен в настройках WP… Потому у меня только html-редактор доступен…
Пришлось остановиться на плагине Tagnetic Poetry…
#24,
попробуйте на дефолтном шаблоне с отключенными остальными плагинами. просто интересно, откуда взялась эта ошибка - на тестовом сервере я просто ну никак не могу ее повторить, у меня все работает как часы.
#25,
а дефолтный шаблон - это какой? У меня и так Twenty Ten Версия 1.6
#26,
ну значит на нем, но при отключенных плагинах.