Перейти к содержимому

Как включить php в статье html wordpress

  • автор:

Вставка PHP кода в WordPress

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

Плагин SyntaxHighlighter Evolved настроить несложно — он все делает сам, достаточно только использовать его дополнительные теги или шорткоды. Чтобы вставить код в запись, достаточно обернуть его в тег pre. Если необходимо вывести код с нумерацией строк и выделением, оборачивайте в шорткод php. Также SyntaxHighlighter Evolved поддерживает множество других языков, включая HTML, JavaScript, CSS и многие другие.

Цифровую нумерацию строк можно включить или отключить.

При желании можно выводить какую-нибудь надпись перед каждым выводом кода, например, слово Код.

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

Настройки плагина для вывода PHP кода на WordPress вы можете посмотреть ниже.

Плагин WP для вставки кода

    Создание и продвижение сайтов
  • Вставка PHP кода в WordPress
Вставка PHP кода в WordPress
Вставка PHP кода в WordPress

Как вставить исполняемый PHP-код в посты WordPress?

Предположим, что вам необходимо сделать какой-то нестандартный функционал непосредственно в теле самого поста в WordPress. Реализацию можно выполнить с помощью, например, JavaScript в связке с плагином «Raw HTML», а можно воспользоваться PHP. Как мы знаем, он, в некотором роде, более функционален, и его результат, выводимый на страницу, может быть проиндексирован.

Но возникает вопрос – как же вставить PHP-скрипт в пост WordPress, да еще и заставить его работать?

На помощь к нам приходит плагин «Insert PHP» из официального магазина WordPress.

Как вставить исполняемый PHP-код в посты WordPress?

Устанавливаете его по этой инструкции. Для вставки PHP-кода вам необходимо воспользоваться специальными тегами:

 [insert_php] Ваш код [/insert_php]

Для того чтобы проверить корректность работы плагина, в один из ваших постов вставьте:

 [insert_php] echo "Hello, world!"; [/insert_php]

Сохраните изменения и просмотрите опубликованную запись на сайте. Если в посте вы обнаружили фразу «Hello, world!», значит, вы все сделали правильно и можете приступить к осуществлению своих идей.

Плагины для вставки кода HTML и PHP на страницы WordPress c подсветкой синтаксиса

Depositphotos

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

Вставка кода в страницу wordpress

Вся проблема со вставкой кода в текст страниц заключается в том, что 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 с дополнительными атрибутами:

WP-Syntax

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
Comments Комментариев нет

Исполняемый PHP код в статьях и виджетах WordPress (функции и плагины)

Приветствуют, друзья. Сегодня мы с вами разберемся в том, как заставить работать любой PHP код в виджетах, статьях и на страницах WordPress. По умолчанию такая функция в этой CMS недоступна и максимум, на что может рассчитывать пользователь – это внедрение HTML кода.

Исполняемый PHP код в контенте (статьях, страницах) и виджетах WordPress - функции (хуки) и плагины

Содержание:

  • Почему PHP отключен по умолчанию — опасности;
  • Для чего включать исполнение в виджетах;
  • Плагины для запуска PHP в виджетах;
  • PHP в виджете WordPress без плагина;
  • Зачем запускать PHP в статьях и постах;
  • Плагин Exec-PHP — исполняемый код в контенте;
  • PHP в статьях WordPress без плагина.

Почему PHP код не работает по-умолчанию

Казалось бы, почему разработчики не наградили столь популярный и удобный движок полезными возможностями по автоматическому исполнению PHP кода. Поначалу я задумывался об этом, но пришел к выводу , что такая политика ведется с позиции безопасности, ведь, неумелое применение PHP в виджетах или внутри записей может привести к непоправимым последствиям – в базе данных что-нибудь нарушится и весь сайт крякнет.

Поэтому, работа с PHP отдана на откуп программистов или людей более менее продвинутых в этом вопросе – непосредственно в файлах WordPress тем любые скрипты исполняются.

Для публичных сайтов (там, где несколько авторов) исполнение PHP в теле статьи повышается риск умышленного саботажа, так как любой автор может получить полный доступ к сайту через окно редактирования статей.

По степени опасности я бы разделил всю эту ситуацию на 3 уровня:

  1. Оставить все как задумали разработчики – безопасно, случайно или умышленно повредить сайт сложно.
  2. Разрешить исполнение PHP в виджетах – средний уровень опасности, только администратор сайта имеет доступ.
  3. Применение кода везде – опасно, так как управлять сайтом может каждый кто допущен к редактированию статей и страниц (модераторы, авторы)

Для чего нужен 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,''.$text); $text = ob_get_contents(); ob_end_clean(); > return $text; >

Первая строка является фильтром, который заменяет при каждом вызове стандартную функцию текстового виджета на новую — text_html_php_widget, а далее идет описание самой новой функции.

Зачем PHP код в статьях и постах WordPress

Внутри записей исполняемый PHP код требуется значительно реже, чем в виджетах, поэтому в первой части статьи я отдельно рассматривал сайдбар, чтобы вы могли не подключать потенциально опасные функции без необходимости.

Но и в постах бывает потребность использования скриптов. Самый частый пример – это вывод карты сайта без плагина. Правда, для карты можно использовать другой приём – сделать специальный шаблон страницы (это отдельная тема).

Карта Tinkoff Black

Мне однажды понадобилось выводить PHP для следующей цели:

Делал я видео сайт. Серии сериала выводились в плейлистах по сезонам и надо было под каждым плейлистом сезона вывести список серий со ссылкой на свою страницу. Похоже на карту сайта, только сложнее – вывод делать надо было списками отдельных рубрик. Можно было вручную HTML кодом каждую ссылку прописать, но там несколько сот серий и процедура муторная. Тем более, при появлении новой серии ссылку на нее пришлось бы добавлять вручную – неудобно. Вот я и решил использовать PHP функции для реализации.

Плагин для исполнения PHP в контенте Exec-PHP

Несмотря на то, что этот плагин не обновлялся уже 7 лет, он прекрасно справляется с обязанностями. И я его выбрал не просто так – он не использует никаких шорткодов, как конкуренты, а дает возможность вставлять в записи WordPress код в чистом виде, начиная с .

Плагин Exec-PHP есть в репозитарии и устанавливается через меню в админке движка.

Из настроек есть только одна – разрешение/запрет на исполнение кода в текстовом виджете, возможности отключить работу в постах и на страницах отсутствует, если надо ее убрать — деактивируем плагин.

Для вставки PHP кода в статью, редактор WordPress должен быть переведен в HTML режим (вкладка «Текст»). Визуальный режим, скорее всего, код попортит.

Рекомендую делать так: наполняем и настраиваем страницу в визуальном редакторе, когда все готово – переключаем в текстовый и добавляем исполняемый код – сохраняем.

Выполнение PHP кода в статьях WordPress без плагина

По аналогии с виджетами, мы можем заменить плагин на специальную функцию, разрешающую выполнение PHP скриптов в контенте. К сожалению, мне не удалось найти вариант, при котором код работал бы автоматически как в случае с плагином, реагируя на теги. Требуется использование шорткода. Моих познаний в PHP не хватило для самостоятельного написания нужной функции, за сим привожу как есть. Работа с шорткодом имеет существенный недостаток, осложняющий работу, о нем я расскажу ниже.

Как работать с описанной ниже функцией

  1. Вставляем ее в файл functions.php темы;
  2. В нужном месте статьи вставляем конструкцию — [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 блога — мой список
  • Как установить Яндекс поиск по сайту и какая от этого польза?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *