Включаем отработку кода 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]

Показываю на примере с функцией рандома, о которой писал вчера.

Вот она сама функция:

<?php echo(rand(1,4)); ?>

Чтобы ей воспользоваться внутри статьи, необходимо сделать так:

[exec]echo(rand(1,4));[/exec]

Т.е. я "откидываю" признак кода <?php ?> и вместо них использую шорткод.

Вот так выглядит в примере с авто:

<img src="/wp-content/uploads/ferrari/f1-0[exec]echo(rand(1,4));[/exec].jpg" width="450" class="aligncenter" height="230" alt="Ferrari" />

И сам результат (пообновляйте страницу и увидите как меняются машины)

Ferrari

Еще похожее:

Привет. Меня зовут Виталик и я автор этого блога, а так же Магазина WordPress https://wp-r.ru/.

Отблагодарить Z888279575784 R109400923968 или ЯД 41001651742138

Оказываю услуги по созданию и настройке сайтов на WordPress (верстка, натяжка).

Мои Контакты. Я в Twitter @mojWP. Смотри на Youtube. Читай RSS блога.

Не держи в себе. Выскажись.

Ваш e-mail не будет опубликован. Обязательные поля помечены *

© 2011-2016 | mojwp.ru | Копирование материала разрешено только с письменного согласия
WordPress: 12.53MB | MySQL:53 | 0,517sec
Премиальные плагины для CMS WordPress
Магазин WordPress WP-R.ru
Спасибо, не показывайте мне эту штуку больше!
Смотри мои обучающие видео на YouTube
Иван только что купил плагин ELT
https://wp-r.ru/plaginy/elt.html