Давно подумывал над тем, чтобы вставлять исполняемый код в посты, страницы и виджеты WordPress. Поскольку сам движок написан на PHP — логично вставлять именно его, хотя можно попробовать встроить например Perl, воспользовавшись CPAN-модулем PHP::Interpreter
или PECL-модулем PHP под названием perl
. Но PHP вставить естественно проще :).
Итак, как же вставить в WordPress PHP? Как и в большинстве других случаев, когда надо модифицировать движок — просто воспользоваться подходящим плагином.
Плагинов находится множество, я попробовал 4 штуки и остановился на Exec-PHP.
Он умеет всё, что мне было надо:
- Вставлять исполняемый PHP код в посты (и соответственно — в страницы)
- Втавлять код в виджеты
Прейдём к настройке плаина.
Настройка может оказаться не совсем очевидной — с административной страницы плагина всё сделать не получится. Чтобы исполнение PHP-кода в WordPress заработало, нужно убедиться в следующем:
- Что пункт
"WordPress должен исправлять некорректный XHTML код автоматически"
в меню Настройки->Написание неактивен - Что выключен «графический» редактор в меню Пользователи->Ваш профиль (стоит галка на
"Отключить «визуальное редактирование» при написании"
) - Что нужной группе пользователей (в WordPress это называется «ролью») разрешено исполнение PHP-кода (для роли «Administrator» должно быть разрешено по умолчанию)
При выполнении вышеперечисленных условий втавленный в записи, страницы и виджеты код должен успешно исполняться. Например мой скрипт для массового добавления друзей в ЖЖ, будучи вставленным в страницу WordPress, успешно работает!
Считаю не лишним напомнить про опасность исполнения неочищенного кода. Не знаю, поддерживает ли PHP какую-то аналогичую perl -T
опцию, поэтому нужно просто помнить про очистку пользовательского ввода (использование недопустимых символов, размеры аргументов опций и т.п.), экранирование всех передаваемых в shell команд и их аргументов и так далее.
В остальном польза от встроенного в WordPress PHP кода очевидна — это полная свобода действий с содержимым блога, помноженная на простоту выполнения этих действий!
Снова полезная статья, пока сам в этих настройках разберёшься…
Пишите почаще.
Спасибо 🙂
Пишу, когда есть о чём…