mojwp.ru
Назад

Включаем отработку кода php внутри статьи на WordPress

Опубликовано: 05.01.2015
3
987

Давеча писал статью о рандомной картинке, где понадобилась отработка 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 ?> и вместо них использую шорткод.

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

Ferrari

Еще похожее:

Автор:
Виталий
Поделиться
Похожие записи
Черкани пару строк
  • Александр
    Опубликовано: 24.02.2017 Ответить на сообщение

    Не работает. Завешивает страницу. :/

    Ищу решение - нужно в контексте страницы в чужом шорткоде (функцию обработчика не знаю) менять значение атрибута. Нужное значение атрибута известно до загрузки страницы. Я "зелёный" и уже мозжечек плывет, не могу найти как это сделать. 🙁
    Вложение шорткодов не работает :/
    "Лопатить" буфер по типу решения выше - уж больно сложно для простой задачи.

  • Андрей
    Опубликовано: 30.01.2020 Ответить на сообщение

    Вставляем код без открывающихся и закрывающихся тегов PHP? Я так понимаю, что PHP совмещенный с html работать не будет?

    • Виталий
      Опубликовано: 31.01.2020 Ответить на сообщение

      Статью читали? Там есть примеры.

Имя
Укажите своё имя и фамилию
E-mail
Без СПАМа, обещаем
Текст сообщения
Отправляя данную форму, вы соглашаетесь с политикой конфиденциальности и правилами нашего сайта.