Включаем отработку кода php внутри статьи на WordPress
Давеча писал статью о рандомной картинке, где понадобилась отработка php-функции прямо в теле статьи.
Решение вопроса очень простое: размещаем код в файле функций шаблона functions.php
// php в теле статьи [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);
Собственно, вот и все. Решение свободно гуляет по сети и вы могли раньше на него натыкаться.
Раньше был еще плагин runPHP, но что-то не нашел его в репозитории WordPress. Ну и фиг с ним.
Использовать можно код как внутри записей, так и статичных страниц. Достаточно взять нужную функцию в такой шорткод:
[exec]код[/exec]
Показываю на примере с функцией рандома, о которой писал вчера.
Вот она сама функция:
Чтобы ей воспользоваться внутри статьи, необходимо сделать так:
[exec]echo(rand(1,4));[/exec]
Т.е. я "откидываю" признак кода <?php ?> и вместо них использую шорткод.
Вот так выглядит в примере с авто:
Еще похожее: