Использование shortcode в WordPress

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

Например, после установки плагина галереи nextgen gallery для WordPress, чтобы вывести галерею, необходимо вставить ее шорткод [nggallery id=1]. Здесь id=1 — атрибут. Или пример shortcode того же плагина без атрибута [tagcloud], который генерирует облако фотографий.

Вы можете создавать свои шорткоды. Создадим shortcode [status], который будет выводить контент определенной страницы. Для этого в вашей теме в файл functions.php следует добавить

function showStatus(){
  $status = ($obj = get_page_by_path('status')) ? $obj->post_content : 'Status is no defined';
  return $status;
}
add_shortcode('status', 'showStatus');

Определяем функцию showStatus, которая должна возвращать значение для вставки его на место shortcode. В нашем примере функция ищет страницу с ярлыком «status» и в случае успеха переменная $status принимает значение содержимого страницы. Затем функция возвращает значение переменной $status.

Функция add_shortcode определяет, что для шорткода [status] должна будет выполниться функция showStatus. То есть теперь [status] будет заменяться на текст страницы с ярлыком status, а в случае ее отсутствия на «Status is no defined».

Другой пример, с использованием атрибутов шорткода.

function paintSpan($args, $content = '') {
 if (!$args['color']) {
  return false;
 }
 if (!$content) {
  $content = 'Безымянный span';
 }
 return '<span style="'.$args['color'].'">'.$content.'</span>';
}
add_shortcode('span_to_paint', 'paintSpan');

Этот код, вставленный в functions.php будет обрабатывать shortcode вида

[span_to_paint color="#6699ff"]Текст внутри span[/span_to_paint]

Размещение shortcode

Размещать шорткоды нужно в постах или страницах. Если необходимо разместить shortcode в файле шаблона, нужно использовать функцию

do_shortcode('[status]');

Чтобы заставить работать шорткод в текстовом виджете WordPress, нужно в functions.php добавить

add_filter('widget_text', 'do_shortcode');

Статья оказалась полезной? Вырази благодарность - поделись в соцсетях

Отзывы : 6 комментариев

  1. Ошибочка. Шорткод в функции do_shortcode обрамляется кавычками вместе с квадратными скобками

    • Опечатка вышла, закрывающую кавычку поставил перед квадратной скобкой, спасибо, поправил.

  2. Подскажите, в чем лажа может быть. Шорткод обрабатывается только в теле поста, а в теле страницы выводится as is.

    • В теле страницы, созданной в админке wp шорткоды должны обрабатываться. Если страница — это .php файл на сервере, тогда нужно выводить шорткод функцией do_shortcode.

  3. А можно таким способом выводить на своём сайте информацию с других сайтов? Например блок со скидками в магазине.

Комментирование отключено