/ Wordpress / PHP код в записях и страницах

PHP код в записях и страницах

HIT

11.12.2015

1984

Дорабатываем функционал WordPress позволяя исполнять в записях и страницах php-код. Это может пригодиться для вызова различных функций или циклов без применения шорткодов.

Реализация с помощью функции exec_php

Вставляем в funсtions

// 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);

В секции добавления содержимого поста открываем и закрывает php конструкцию шорткодом кв.ск exec кв.ск код кв.ск /exe cкв.ск

Пример вывода php-кода (get_archives (‘postbypost’, 5);):

Deprecated: Функция get_archives с версии 2.1.0 считается устаревшей! Используйте wp_get_archives(). in /home/t/tiberi6w/opttour.ru/public_html/wp-includes/functions.php on line 6131

  • Фильтр в Swiper
  • Нанесение фигур на карту Яндекс
  • Настройки сайта. Раздел с полями
  • Поле Иконка + подпись
  • Запуск видео при наведении
  • В данном решении работают далеко не все php сценарии
    [site-socialshare]
    • Комментарии
    • Вложения

    Добавить комментарий

    Notice: Функция WP_Styles::add вызвана неправильно. Стиль с дескриптором "editor-buttons" был поставлен в очередь с незарегистрированными зависимостями: dashicons. Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение было добавлено в версии 6.9.1.) in /home/t/tiberi6w/opttour.ru/public_html/wp-includes/functions.php on line 6131

    Пока нет комментариев. Будь первым!

    PHP код в записях и страницах
    Имитация набора текста
    Рекомендации для васИмитация набора текстаOpttour.ru
    Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.