Чтобы в записях и на страницах 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] - протестировано.