- Исполняемый php код в записях WordPress
- Важно о защите
- Как вставить PHP код в WordPress страницы, записи и сайдбар?
- Как вывести исполняемый PHP код в WordPress без плагина?
- Как внедрить исполняемый PHP код в WordPress с плагином Exec-PHP?
- Реализация идеи
- 🌐 Как добавить PHP-код в запись или страницу WordPress
- Причины добавить PHP-код в запись или страницу WordPress
- Как добавить PHP-код в сообщение или страницу WordPress с помощью плагина
- Заключение
Исполняемый php код в записях WordPress
Бывают ситуации, когда очень удобно использовать весь потенциал языка программирования PHP в тексте при написании статей. Речь идет о статьях для WordPress.
Все кто пробовал написать какой либо php код в посте, в надежде что он сработает, знают, что WordPress воспринимает такой код как простой текст. Однако иногда бывает удобно запустить, например, какой-нибудь цикл вывода прямо в тексте при написании статьи, ведь контент такой статьи будет обновляться динамически. Другим примером может служить возможность вызывать готовые функции в посте, в случае необходимости или, например, вставить какой-нибудь php файл в текст поста по средствам php функции require():
В общем, здесь фантазия безгранична и правда в том, что невозможность использования php в тексте статьи в некоторых случаях может стать настоящей проблемой. Как-то давно я столкнулся с такой проблемой, решил её взяв и немного переделав код из какого-то плагина (сейчас уже не вспомню название). Итак, чтобы реализовать возможность вставлять исполняемые PHP скрипты в текст статьи / поста или статической страницы, нужно добавить в уже, наверное, до боли знакомый нам файл темы functions.php следующий код:
## Исполняемый PHP код в контенте записи WordPress. ## [exec]PHP_код[/exec] ## ## @version: 1.0 if( 'Исполняемый PHP код в контенте' ) < add_filter( 'the_content', 'content_exec_php', 0 ); function content_exec_php( $content )< return preg_replace_callback( '/\[exec( off)?\](.+?)\[\/exec\]/s', '_content_exec_php', $content ); >function _content_exec_php( $matches )< if( ' off' === $matches[1] )< return "\n\n'. htmlspecialchars( $matches[2] ) .'\n\n"; > else < eval( "ob_start(); ; \$exec_php_out = ob_get_clean();" ); return $exec_php_out; > > >
[exec] // Комментарий global $wp_version; echo "Текущая версия WP: $wp_version"; [/exec]
Чтобы отключить выполнение кода, можно использовать следующую конструкцию. Она выведет просто код, как если бы мы вставили php код как текст.
Важно о защите
Нужно помнить, что этой возможностью может воспользоваться кто угодно, а это огромная дыра в защите, потому что если у кого-либо есть доступ к написанию статей, он легко может сделать с сайтом все что захочет. Чтобы обезопасить себя от возможных пагубных последствий этого хака, можно сделать следующую простую защиту (то что сразу пришло мне в голову): включать исполнение конструкции [exec]php код[/exec] , только в том случае, если, например, у поста есть какое-либо произвольное поле или, скажем, пост написан в 00 минут. Естественно только вы будете знать эту хитрость при которой код будет исполняться и соответственно только вам будет доступна возможность вставить php код в статью. —
Получите много друзей на страницу ВК для того, чтобы сделать ее максимально популярной в сети. Выводите свой аккаунт в топ поиска Контакта с недорогими услугами от представленного сайта. Здесь Вам будут доступны такие ресурсы, как: подписчики в группу, лайки, репосты, просмотры записей и т. д. Успейте сделать максимально выгодную покупку уже сейчас.
До этого из: Код (коддинг)
До этого из: Хуки (хаки сниппеты фильтры события)
Как вставить PHP код в WordPress страницы, записи и сайдбар?
Здравствуйте, уважаемые друзья и гости блога! Сегодняшний пост будет полезен как новичку, так уже и матерому вебмастеру, который еще не знает как можно вставить php код в wordpress на страницы, записи и сайдбар, чтобы он был исполнен движком WordPress.
Хочу Вам рассказать в данной статье об этом и как можно вставить php код в wordpress без использования плагина и с использованием плагина. Вы также узнаете все нюансы и тонкости, плюсы и минусы, которые Вас могут поджидать при выполнении этой функции на WordPress.
Иногда возникает простая необходимость при создании сайта, чтобы вставить php код в wordpress в записях, на страницах или в сайдбаре. Я сам с этим столкнулся однажды и когда я попытался просто вставить php код в сайдбаре, он был выведен как обычный текст. То есть не был исполнен как функция.
Зачем нужно исполнение кода php на WordPress в постах, на страницах и в сайдбаре? Это каждый вебмастер решает сам для себя! Например возникла необходимость вставки в свои посты какого либо скрипта созданного на php коде или нужно вывести какое-то необычное меню в сайдбаре, мало ли.
Так вот, что бы вывести исполняемый код php в WordPress необходимо сделать некоторые действия, а какие именно, мы с вами сейчас узнаем …
Как вывести исполняемый PHP код в WordPress без плагина?
Данный способ вывода php кода на Вордпресс будет актуален для тех, кто является ярым противником установки лишних плагинов на своих ресурсах. И сейчас Вы узнаете как это можно сделать.
Для этого вам будет нужно внести некоторые изменения в файл functions.php вашей активной темы оформления сайта. Просто добавьте туда вот такой код в самом конце перед знаком “ ?> “:
/* чтобы вставить исполняемый код php в статьях/страницах WordPress, используйте этот шорткод: [exec]код[/exec] */ function exec_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('/\[exec\]((.|\n)*?)\[\/exec\]/', 'exec_php', $content); $content = preg_replace('/\[exec off\]((.|\n)*?)\[\/exec\]/', '$1', $content); return $content; >add_filter('the_content', 'inline_php', 0);
Затем используйте вот этот шорткод в своих записях и статьях для вставки исполняемого php кода:
- Небольшое уточнение, которое является очень важным моментом для правильного отображения и вывода php кода в ваших записях на сайте!
Обязательно, когда Вы будете внедрять свой php код в шорткод, не используйте вот это: “”! То есть ваш исполняемый php код вставляемый в шоткод должен выглядеть не так “ “, а вот так “ echo date(‘Y’); ” . И в конечном итоге, когда Вы вставите его в шорткод, он будет выглядеть вот так:
Исполнение таким образом php кода в ваших записях на WordPress делает ваш движок уязвимым для разного рода хакеров – взломщиков, которые могут им воспользоваться в своих корыстных целях. Для этого Вы должны изменить значение “ exec ” в коде, который вставляется в файл functions.php на свой, который известен только вам! И соответственно использовать это же значение в шорткодах для вставки в записях.
Этим действием Вы сможете избежать того, что кто-то сможет воспользоваться потенциальной “дырой”, образовавшейся в результате использования данной функции – вставить php код в wordpress.
Это то, что касается вставки php кода в WordPress без использования плагина.
А теперь давайте узнаем, как можно еще вставить php код в WordPress, но уже при помощи плагина …
Как внедрить исполняемый PHP код в WordPress с плагином Exec-PHP?
Существует много плагинов для того, чтобы вставить php код в wordpress для его исполнения. Но не все они являются безопасными, так как при их установке и использовании появляются уязвимости в движке, которые не чистые на руку взломщики могут использовать.
Я вам сейчас расскажу о самом безопасном и наиболее функциональном плагине для исполнения php кода в WordPress – это Exec-PHP. Для начала его нужно скачать или с официального сайта WordPress или просто установить из своей админки на сайте. Надеюсь Вы знаете как это делается?! Если не знаете, то посмотрите пример установки плагина из админки вот здесь. Там есть и видео ролик, в котором Вы сможете все увидеть воочию. Хоть там речь идет об установке другого плагина, но принцип один и тот же.
После установки и активации плагина в вашем основном меню админки появится пункт меню плагина Exec-PHP:
Нажмите на нее и Вы попадете в опции плагина Exec-PHP:
Выберите здесь выполнять/игнорировать PHP код в виджетах и все.
Затем, чтобы Вы смогли вставить исполняемый php код в wordpress в записях и на страницах, Вы должны у себя в профиле установить галочку в пункте – опция Disable WYSIWYG Conversion Warning:
Все. Теперь вы сможете добавить на свои страницы и в записи любой php код в wordpress и он будет исполнен!
Спасибо за внимание! Всем удачи! До новых встреч!
Реализация идеи
1. Создадим php-файл. Я назвал свой «test.php» и добавил его в корневой каталог с загруженной темой, вот сюда:
Должно получится следующим образом:
2. Для использования всех функций WordPress необходимо подключить «wp-load.php», вставляем приведенный ниже код в наш PHP:
require_once $_SERVER["DOCUMENT_ROOT"]."/wp-load.php";
3. Для примера добавляю в php-файл функцию получения временной зоны сайта с выводом на странице:
$timezone = wp_timezone(); echo $timezone->getName();
В итоге мой файл выглядит следующим образом:
В принципе, все готово, теперь можно переходить по ссылке ниже:
https://название_сайта/wp-content/themes/blogshare/test.php
Но блин, какая длинная ссылка получилась, это ведь не удобно! Давайте сократим ссылку и создадим человекоподобный URL (ЧПУ). Например, чтобы страница открывалась по короткому урл:
4. Находим в корневой папке WordPress файл «.htaccess», при помощи которого можно задавать различные настройки сервера apache и открываем его редактором.
5. Добавляем директиву «RewriteRule» после «RewriteBase»:
RewriteRule ^(test)/$ /wp-content/themes/blogshare/test.php [L]
6. Переходим в браузере по заданному URL и видим, что страница отображается и функция отображения часовой зоны работает.
Готово! И никакие плагины не нужны! Естественно существует огромное множество плагинов, чтобы это реализовать, но в них еще нужно разобраться, а можно за несколько шагов, описанных в статье, сделать самому.
🌐 Как добавить PHP-код в запись или страницу WordPress
Здесь мы узнаем, как добавить PHP на страницу или публикацию WordPress, чтобы вы могли улучшить их функциональность.
Причины добавить PHP-код в запись или страницу WordPress
По умолчанию WordPress не позволяет запускать PHP-код в сообщениях или на страницах.
Рекомендуемый способ добавления функций PHP – изменение дочерней темы или создание собственных шаблонов страниц.
Несмотря на это, бывают случаи, когда вы можете захотеть добавить определенные функции PHP к отдельному сообщению или странице.
В этих случаях вы можете переопределить правило, используя плагины виджетов кода WordPress.
Следующее руководство покажем вам процесс использования плагина Insert PHP Code Snippet для добавления PHP-кода непосредственно в сообщение или страницу WordPress.
Как добавить PHP-код в сообщение или страницу WordPress с помощью плагина
Прежде чем углубиться в руководство, убедитесь, что вы установили и активировали плагин Insert PHP Code Snippet.
На панели управления WordPress перейдите в раздел XYZ PHP Code -> PHPCode Snippets.
На странице «PHP Code Snippets» нажмите «Add New PHP Code Snippet». Добавьте желаемую функцию PHP и ее имя отслеживания в соответствующие поля. Затем щелкните “Create” .
Если процесс прошел успешно, на экране появится подтверждающее сообщение и новая функция.
Для будущего использования убедитесь, что все функции PHP, которые вы хотите использовать, активны, проверив раздел «Action».
Активные фрагменты кода будут иметь зеленый символ паузы, а рядом с неактивными фрагментами будет зеленая галочка.
Чтобы добавить PHP-код в запись или страницу WordPress, вставьте шорткод фрагмента функции, которую вы хотите использовать, в нужное место.
Если вы используете редактор блоков Гутенберга, используйте шорткод или блок кода для его отображения.
Заключение
Просто потому, что WordPress не позволяет запускать PHP-код в записи или на странице, это не невозможно.
Используя плагины виджетов кода WordPress, вы можете легко добавлять различные функции PHP к своим сообщениям или страницам.