Flector

Allow PHP in Posts and Pages

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]. Объявлять код не надо:

Вставка 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]

Результатом будет:

Debug-режим

Сразу становится ясно, что ошибка возникла из-за замененных 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-кода и в текстовых виджетах:

php-код в текстовом виджетеа

Плагин не лишен недостатков – одна только запутанная система справки чего стоит, но это единственный подобный плагин, который умеет удалять вставленную WordPress разметку, не удаляя ее вообще из всей записи.

Информация о плагине в репозитории wordpress.org не найдена. Или wordpress.org в данный момент недоступен или плагин был временно удален из репозитория (например, из-за найденной критической ошибки в плагине). Попробуйте найти плагин в репозитории вручную.

Понравился пост? Подпишись на обновления по Обновления блога по RSSRSS или Обновления блога на TwitterTwitter !

Комментарии (всего 26 комментариев)
Написать комментарий

(обязательно)

(обязательно, не публикуется)

Для вставки кода используйте кнопку "Код", по умолчанию используется синтаксис подсветки языка "php", вы можете поменять его на любой другой поддерживаемый GeSHi язык, например "javascript", "css", "html4strict", "sql" и тд. Используйте предпросмотр!
 


Подписаться на уведомления без комментирования.