Вставка PHP кода в WordPress
Вставка PHP кода на WP-сайт — это весьма нужная опция, позволяющая выводить код скрипта в любой записи или странице. Без соответствующих плагинов WordPress попросту не позволяет вставить в запись код PHP или HTML: часть символов безвозвратно исчезает, а часть — отображается криво. Самое простое решение, позволяющее вставить php код в ВордПресс — это бесплатный плагин SyntaxHighlighter Evolved, найти который можно в репозитории WP. О том, как начать работу с любым плагином WP читайте статью «Как установить плагин на Вордпресс».
Плагин SyntaxHighlighter Evolved настроить несложно — он все делает сам, достаточно только использовать его дополнительные теги или шорткоды. Чтобы вставить код в запись, достаточно обернуть его в тег pre. Если необходимо вывести код с нумерацией строк и выделением, оборачивайте в шорткод php. Также SyntaxHighlighter Evolved поддерживает множество других языков, включая HTML, JavaScript, CSS и многие другие.
Цифровую нумерацию строк можно включить или отключить.
При желании можно выводить какую-нибудь надпись перед каждым выводом кода, например, слово Код.
Все используемые шорткоды и примеры их использования содержатся в настройках плагина, что, конечно, является огромным плюсом разработчику.
Настройки плагина для вывода PHP кода на WordPress вы можете посмотреть ниже.

-
Создание и продвижение сайтов
- Вставка PHP кода в WordPress
![]() Вставка PHP кода в WordPress |
Как вставить исполняемый PHP-код в посты WordPress?
Предположим, что вам необходимо сделать какой-то нестандартный функционал непосредственно в теле самого поста в WordPress. Реализацию можно выполнить с помощью, например, JavaScript в связке с плагином «Raw HTML», а можно воспользоваться PHP. Как мы знаем, он, в некотором роде, более функционален, и его результат, выводимый на страницу, может быть проиндексирован.
Но возникает вопрос – как же вставить PHP-скрипт в пост WordPress, да еще и заставить его работать?
На помощь к нам приходит плагин «Insert PHP» из официального магазина WordPress.

Устанавливаете его по этой инструкции. Для вставки PHP-кода вам необходимо воспользоваться специальными тегами:
[insert_php] Ваш код [/insert_php]
Для того чтобы проверить корректность работы плагина, в один из ваших постов вставьте:
[insert_php] echo "Hello, world!"; [/insert_php]
Сохраните изменения и просмотрите опубликованную запись на сайте. Если в посте вы обнаружили фразу «Hello, world!», значит, вы все сделали правильно и можете приступить к осуществлению своих идей.
Плагины для вставки кода HTML и PHP на страницы WordPress c подсветкой синтаксиса

Здравствуйте, уважаемые читатели! Сегодня я расскажу о том, как в статьи блога WordPress вставить HTML или PHP код с подсветкой синтаксиса. Возможно, эту статью следовало бы поместить в раздел «Дополнительные плагины», потому что вряд ли авторам кулинарных или строительных блогов понадобится подобное делать, но я посчитал, что там этот пост затеряется.

Вся проблема со вставкой кода в текст страниц заключается в том, что WordPress пытается выполнить его и выдать на страницу уже результат. Кроме того, пользователи привыкли к подсветке синтаксиса программного кода, которую регулярно видят в своих редакторах, например Notepad++, и воспринимать сплошной код без какого-либо выделения очень трудно. Это одна из причин, по которой люди очень редко пользуются встроенными редакторами кода шаблонов темы WordPress и его плагинов.
И так, стандартными средства WordPress вставить код в статью и подсветит его синтаксис не получится, придется устанавливать дополнительный плагин с подобным функционалом. Таких плагинов очень много — достаточно в форме поиска на сайте WordPress.org ввести слово Syntax и в результатах получите более 500 всевозможных вариантов. Пожалуй, самым популярным и удобным является Syntax Highlighter Evolved.
Установка и использование плагина Syntax Highlighter Evolved
Установка SyntaxHighlighter Evolved очень простая:
- скачайте свежую версию Syntax Highlighter Evolved ;
- распакуйте архив и перекиньте папку с файлами плагина на сервер в директорию wp-content/plugins, используя ftp клиент FileZilla;
- скачайте локализацию для SyntaxHighlighter Evolved и загрузите два файла из архива в директорию wp-content/plugins/syntaxhighlighter/localization на сервере;
- сбросьте кэш, если используете кэширование на блоге;
- активируйте плагин через админку WP.
Настройки плагина располагаются в разделе «Параметры» — «Подсветка синтаксиса».
Все настройки на русском языке, поэтому с их пониманием не должно возникнуть сложностей. После внесения изменений сохраняйте настройки и посмотрите на результат в опции «предпросмотр», где представлен образец произвольного кода.
Отмечу только, что в опции «Цвета» можно выбрать цветовую гамму для подсветки синтаксиса.
Теперь, чтобы вывести какой-либо программный текст в статье, вам потребуется переключится на встроенный html редактор и использовать либо короткий синтаксис:
[рhp]Слова и символы на языке программирования php[/рhp]
[сode lang="рhp"]В опции lang выбран язык php[/сode]
Плагин предоставляет большой набор параметров на все случае жизни, но основными из них являются сокращения языков, которые необходимо прописывать в атрибуте lang для корректной подсветки синтаксиса. Полный список языков и их сокращений можно посмотреть на официальном сайте плагина SyntaxHighlighter Evolved .
Не работает Syntax Highlighter
На своем блоге я столкнулся с проблемой — Syntax Highlighter Evolved не работает. Устанавливается, настраивается, но корректно отображать код на странице на отрез отказывается. Самое главное, что и ошибок никаких не выдает, просто молча не работает.
Покопавшись на тематических форумах и блогах нарыл информацию, что Syntax Highlighter Evolved может не работать из-за несовместимости с плагинами кэширования, в частности с Hyper Cache. В качестве совета предлагалось повторно сбросить кэш. Подобная мера мне не помогла и пришлось искать альтернативу. Это оказалось не такой простой задачей — все остальные плагины из серии Syntax Highlighter тоже отказывались работать. Наконец, я наткнулся на легкий и простой WP-Syntax, который и использую на своем блоге.
Вставка кода с помощью WP-Syntax
Устанавливается плагин стандартно и даже не требует настройки. Только скачайте свежую версию WP-Syntax с wordpress.org . Для вставки кода в текст статей используется тег pre с дополнительными атрибутами:

lang — указывается язык, на котором написан вставляемый код. Полный перечень всех поддерживаемых языков и сокращений для них можно посмотреть здесь, в разделе Supported Languages .
line — атрибут позволяет отображать нумерацию строк. Указывается номер первой строчки кода.
При переключении с html в визуальный редактор WP тег pre интерпретируется и код не выводится так, как надо. Поэтому для редактирования подобных статей используйте только редактор в режиме html.
На сегодня это все. До скорых встреч на страницах блога FairHeart.ru!
Лучший способ выразить благодарность автору — поделиться с друзьями!
Узнавайте о появлении нового материала первым! Подпишитесь на обновления по email:
Следите за обновлениями в Twitter и RSS.
Эти статьи Вам могут быть интересны:
- Плагины для комментариев WordPress
- Рубрики, записи, метки и страницы WordPress
- Карта сайта WordPress — плагины Google XML Sitemaps и WP DS Blog Map
- Текстовый и визуальный редактор WordPress
- WordPress плагины похожих, популярный и случайных статей для внутренней перелинковки
- Картинки в WordPress: плагины для создания галерей изображений, слайдшоу, лайтбоксов и слайдеров
- Плагины с виджетом погоды для WordPress
| |
Комментариев нет |
Исполняемый PHP код в статьях и виджетах WordPress (функции и плагины)
Приветствуют, друзья. Сегодня мы с вами разберемся в том, как заставить работать любой PHP код в виджетах, статьях и на страницах WordPress. По умолчанию такая функция в этой CMS недоступна и максимум, на что может рассчитывать пользователь – это внедрение HTML кода.

Содержание:
- Почему PHP отключен по умолчанию — опасности;
- Для чего включать исполнение в виджетах;
- Плагины для запуска PHP в виджетах;
- PHP в виджете WordPress без плагина;
- Зачем запускать PHP в статьях и постах;
- Плагин Exec-PHP — исполняемый код в контенте;
- PHP в статьях WordPress без плагина.
Почему PHP код не работает по-умолчанию
Казалось бы, почему разработчики не наградили столь популярный и удобный движок полезными возможностями по автоматическому исполнению PHP кода. Поначалу я задумывался об этом, но пришел к выводу , что такая политика ведется с позиции безопасности, ведь, неумелое применение PHP в виджетах или внутри записей может привести к непоправимым последствиям – в базе данных что-нибудь нарушится и весь сайт крякнет.
Поэтому, работа с PHP отдана на откуп программистов или людей более менее продвинутых в этом вопросе – непосредственно в файлах WordPress тем любые скрипты исполняются.
Для публичных сайтов (там, где несколько авторов) исполнение PHP в теле статьи повышается риск умышленного саботажа, так как любой автор может получить полный доступ к сайту через окно редактирования статей.
По степени опасности я бы разделил всю эту ситуацию на 3 уровня:
- Оставить все как задумали разработчики – безопасно, случайно или умышленно повредить сайт сложно.
- Разрешить исполнение PHP в виджетах – средний уровень опасности, только администратор сайта имеет доступ.
- Применение кода везде – опасно, так как управлять сайтом может каждый кто допущен к редактированию статей и страниц (модераторы, авторы)
Для чего нужен PHP в виджетах
Вопрос индивидуальный, так как реализовать с помощью этого языка программирования можно все что угодно. Лично меня к написанию этого поста подтолкнул заказ клиента, сайт которого я сейчас делаю. На нем необходимо было вывести в сайдбаре в отдельном виджете список новостей из одной рубрики – «Новости». В стандартных виджетах WordPress нет такой возможности.
Вопрос стоял между поиском плагина с соответствующими возможностями или применением несложного PHP кода. Скрипт для такой задачи, действительно, небольшой и нагружать сайт лишним плагином, который больше нигде использоваться не будет, не хотелось.
В целом, разрешая исполнение PHP, мы можем решить 2 задачи:
- Заменить часть плагинов сайта на скрипты и снизить таким способом нагрузку на хостинг;
- Реализовать функции, для которых плагинов пока не существует.
На первом этапе я расскажу о виджетах, а потом, отдельным блоком про вывод кода в контенте.
Плагины для PHP в виджетах
Данная категория плагинов либо разрешает применение кода в стандартном текстовом виджете, либо создает специализированный тип виджета.
Преимущество плагинов: При смене темы оформления WordPress не нарушается работа функций добавленных в шаблон, все продолжает работать не требуя вмешательства вебмастера. Хуки добавленные в шаблон при смене темы придется переносить на новую вручную.
В моем примере выше, я делаю сайт для клиента и, если он захочет самостоятельно сменить дизайн, то пропадут настройки, которые сделаны через файлы functions.php и др., поэтому я максимально упрощаю ему управление сайтом, опираясь на плагины (тем более, в его нише трафик невелик и нагрузки много не будет).
PHP Code Widget
Этот плагин я давно использую в своей работе, он добавляет в список доступных виджет, похожий на обычный текстовый, только способный обрабатывать кроме текста и HTML еще и PHP.
PHP Code Widget присутствует в официальном репозитарии WordPress, легко находится по названию. Как устанавливать такие плагины описано тут.
Настроек не требуется, виджет в списке появится сразу после установки и активации плагина. В сайдбар перетаскиваете «PHP Code» и добавляете туда любой скрипт.
PHP в виджете WordPress без плагина
В этом случае нам потребуется хук, который будет подменять стандартную функцию, обеспечивающую работу текстового WordPress виджета, функцией разрешающей обрабатывать PHP.
Такой хук добавляется в файл functions.php текущей темы (в самом конце перед закрывающей скобкой ?>). После этого, новых вариантов виджета, как в случае с плагином, не появляется, PHP коды начинают работать в стандартном текстовом.
add_filter('widget_text',' text_html_php_widget ',100); function text_html_php_widget($text) < if(strpos($text,'') !== false) < ob_start(); eval('?>'.$text); $text = ob_get_contents(); ob_end_clean(); > return $text; >
Первая строка является фильтром, который заменяет при каждом вызове стандартную функцию текстового виджета на новую — text_html_php_widget, а далее идет описание самой новой функции.
Зачем PHP код в статьях и постах WordPress
Внутри записей исполняемый PHP код требуется значительно реже, чем в виджетах, поэтому в первой части статьи я отдельно рассматривал сайдбар, чтобы вы могли не подключать потенциально опасные функции без необходимости.
Но и в постах бывает потребность использования скриптов. Самый частый пример – это вывод карты сайта без плагина. Правда, для карты можно использовать другой приём – сделать специальный шаблон страницы (это отдельная тема).

Мне однажды понадобилось выводить PHP для следующей цели:
Делал я видео сайт. Серии сериала выводились в плейлистах по сезонам и надо было под каждым плейлистом сезона вывести список серий со ссылкой на свою страницу. Похоже на карту сайта, только сложнее – вывод делать надо было списками отдельных рубрик. Можно было вручную HTML кодом каждую ссылку прописать, но там несколько сот серий и процедура муторная. Тем более, при появлении новой серии ссылку на нее пришлось бы добавлять вручную – неудобно. Вот я и решил использовать PHP функции для реализации.
Плагин для исполнения PHP в контенте Exec-PHP
Несмотря на то, что этот плагин не обновлялся уже 7 лет, он прекрасно справляется с обязанностями. И я его выбрал не просто так – он не использует никаких шорткодов, как конкуренты, а дает возможность вставлять в записи WordPress код в чистом виде, начиная с .
Плагин Exec-PHP есть в репозитарии и устанавливается через меню в админке движка.
Из настроек есть только одна – разрешение/запрет на исполнение кода в текстовом виджете, возможности отключить работу в постах и на страницах отсутствует, если надо ее убрать — деактивируем плагин.
Для вставки PHP кода в статью, редактор WordPress должен быть переведен в HTML режим (вкладка «Текст»). Визуальный режим, скорее всего, код попортит.
Рекомендую делать так: наполняем и настраиваем страницу в визуальном редакторе, когда все готово – переключаем в текстовый и добавляем исполняемый код – сохраняем.
Выполнение PHP кода в статьях WordPress без плагина
По аналогии с виджетами, мы можем заменить плагин на специальную функцию, разрешающую выполнение PHP скриптов в контенте. К сожалению, мне не удалось найти вариант, при котором код работал бы автоматически как в случае с плагином, реагируя на теги. Требуется использование шорткода. Моих познаний в PHP не хватило для самостоятельного написания нужной функции, за сим привожу как есть. Работа с шорткодом имеет существенный недостаток, осложняющий работу, о нем я расскажу ниже.
Как работать с описанной ниже функцией
- Вставляем ее в файл functions.php темы;
- В нужном месте статьи вставляем конструкцию — [startphp] исполняемый код без [/startphp]
/* Запуск php в статьях и страницах WordPress: [startphp]код[/startphp] */ function start_php($matches) < eval('ob_start();'.$matches[1].'$inline_execute_output = ob_get_contents();ob_end_clean();'); return $inline_execute_output; >function inline_php($content) < $content = preg_replace_callback('/\[startphp\]((.|\n)*?)\[\/startphp\]/', 'start_php', $content); $content = preg_replace('/\[startphp off\]((.|\n)*?)\[\/startphp\]/', '$1', $content); return $content; >add_filter('the_content', 'inline_php');
Недостаток
Если внутри вставляемого PHP кода есть HTML вставки или текст, то он работать не будет. Любой текст или теги придется вставлять с помощью команды echo, что не всегда удобно. То есть, код должен быть чисто PHP-шный на 100 правильного формата.
[startphp] echo 'Так работать будет'; [/startphp]
[startphp] echo 'Эта строка правильная'; Так работать не будет [/startphp]
В плагине Exec-PHP такой заморочки нет — и текст и HTML исполнятся, но все элементы PHP кода должны быть обрамлены в соответствующие теги.
Для многих вебмастеров тема, описанная в этой статье открывает бесконечные возможности для творчества — можно реализовать то, чего раньше сделать не получалось, а также избавиться от массы плагинов, заменив их на разные фильтры, функции и хуки.
Статьи из этой же рубрики:
- Как проверить битые ссылки на сайте с помощью программ, сервисов, плагинов и через поисковые системы
- Подборка плагинов для оптимизации WordPress
- Исправляем ошибку «Сайт ненадолго закрыт на техническое обслуживание. Зайдите через минуту»
- Какой хостинг лучше выбрать для сайта?
- Как установить CMS Joomla 3 на хостинг?
- 26 лучших плагинов для WordPress блога — мой список
- Как установить Яндекс поиск по сайту и какая от этого польза?
