Как выполнить произвольный php-код в посте без плагинов

👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

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

Откройте файл functions.php и добавьте в него несколько строк:

function run_php($matches){
		eval('ob_start();'.$matches[1].'$inline_execute_output = ob_get_contents();ob_end_clean();');
		return $inline_execute_output;
	}
function run_php($content){
	$content = preg_replace_callback('/[run]((.|n)*?)[/run]/', 'exec_php', $content);
	$content = preg_replace('/[run off]((.|n)*?)[/run]/', '$1', $content);
	return $content;
}
add_filter('the_content', 'run_php', 0);

Этот шорткод имеет конструкцию:

[run]тут исполняемый php-код[/run]

Все, что находится внутри шорткода, считается исполняемым php-кодом. Довольно удобно!
Если вы не хотите, чтобы php-код выполнялся, то можете использовать такую конструкцию:

[run off]тут исполняемый php-код[/run]

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

Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

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

  1. Grawl

    Ловко!

    Ответить
  2. xsid

    Эх, блин, а я использовал кучу плагинов, что б это сделать. Пойду переделывать, то что было на этот способ.

    Вопрос: а шорт-код можно применять в шаблоне, или только в тексте поста?

    Ответить
  3. xsid

    Что, никто не знает про шорткоды?

    Ответить
    1. Можно.
      https://n-wp.ru/kak-ispolzovat-shortkodyi-vnutri-faylov-temyi-vashego-bloga/ – Как использовать шорткоды внутри файлов темы вашего блога

      Ответить
  4. Grawl

    WordPress ругается:

    function run_php($matches){ eval('ob_start();'.$matches[1].'$inline_execute_output = ob_get_contents();ob_end_clean();'); return $inline_execute_output; } function run_php($content){ $content = preg_replace_callback('/[run]((.|n)*?)[/run]/', 'exec_php', $content); $content = preg_replace('/[run off]((.|n)*?)[/run]/', '$1', $content); return $content; } add_filter('the_content', 'run_php', 0);
    Don't let this happen again. Go Back.

    Придётся пока плагин расчехлять.

    Ответить
×
WordPress:
прокачай свой сайт!

Скидка на премиум темы и плагины

Успей забрать скидку ⋙