Как добавить контент *.PHP файла в пост или страницу

C помощью короткого кода (short code) можно добавить контент любого *.php или любого другого файла в текст поста или статической страницы. Делается это просто. Рассмотрим пример, когда нам надо вставить текущую дату в пост или страницу.

Создаем файл date_today.php. Открываем его и вставляем следующий код в текст:

<?php
date_default_timezone_set ('Europe/Moscow');
$today = date («d. m. Y»);
echo «$today»;
?>

Сохраняем файл date_today.php в кодировке utf-8 without BOM (это делается легко в текстовом редакторе Notepad++) в директорию используемой темы.
Далее находим в этой же директории файл function.php и дописываем в него следующую функцию:

//функция вставки контента любого файла в страницу с помощью
//шорт-кода  [include filepath="/название файла.php"]
function include_file ($atts) {
extract (shortcode_atts (array ('filepath' => 'NULL'), $atts));
if ($filepath!='NULL' && file_exists (TEMPLATEPATH.$filepath)){
ob_start ();
include (TEMPLATEPATH.$filepath);
$content = ob_get_clean ();
return $content;
}
}
add_shortcode ('include', 'include_file');
//окончание шорт-кода

Все готово, осталось добавить в пост или статическую страницу наш короткий код. Не забудьте заключить его в квадратные скобки. Добавлять короткий код необходимо из админки WordPress при редактировании поста в режиме визуального редактирования:

include filepath="/date_today.php"

Вот результат работы нашего short code:

[include filepath="/date_today.php"]

По аналогии с этим примером в пост или страницу можно вставить контент любого файла. Попробуйте, например, добавить на страницу рекламы вашего блога добавить файл, вычисляющий курс доллара для ваших рекламодателй из других стран.

  1. eavasi

    Мне нравится, Саша, конечно, что ты называешь меня Мастером, но это не совсем соответствует действительности.

  2. Marinova

    Здравствуйте! Вопрос не совсем по этому посту, НО! Пытаюсь вставить на сайт календарь WP Calendar — удобная штука, но как ее интегрировать в страницу? Мануал пишет, мол, You can integrate this calendar by using the tag {events_calendar} in your page or post, а куда этот тэг пихать-то? Если просто засунуть его в текст страницы, то ничего не происходит. Вопрос, наверное, глупый, но никак не могу справиться.
    Помогите, пожалуйста.

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

Ваш e-mail не будет опубликован.