Как запустить исполняемый php-код в Wordpress любой длины?

Чтобы в записях и на страницах Wordpress работал исполняемый php-код у меня в funсtions.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);


Обнаружилась проблема: такие вставки между [exec] [/exec] работают только до определенной длины кода. Начиная с определенной длины (сейчас у меня это 35 строк кода) - в запись выводится пустота (никаких ошибок, просто шаблон сайта без контента данной страницы). Раньше уже была такая проблема и решал ее либо разбиением на несколько [exec], либо подключением include части кода. Теперь такой возможности нет, а исполнять код на странице хочется - как быть? Кто-нибудь с таким сталкивался?

P.S. Это не зависит от того, что внутри [exec] [/exec] - протестировано.
  • Вопрос задан
  • 735 просмотров
Решения вопроса 1
@doutaxe Автор вопроса
Установил плагин Insert PHP - с его шорт-кодом все прекрасно работает. Хз, чем отличается плагин от моей функции в functions.php, но решение такое)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы