Шорткоды в WordPress — это мощный инструмент, который позволяет вставлять динамический контент в посты, страницы и виджеты без необходимости писать сложный HTML или PHP код. Они особенно полезны для разработчиков и опытных пользователей, так как значительно упрощают работу с функциональностью сайта.
Что такое шорткоды и зачем они нужны в WordPress
Шорткод — это небольшой тег в квадратных скобках, например [gallery] или [contact-form], который WordPress преобразует в определенный вывод. Это может быть галерея изображений, форма обратной связи, кнопка или даже сложный блок с динамическими данными.
Основные преимущества шорткодов:
- Удобство вставки сложного функционала без знаний программирования.
- Повторное использование одного и того же кода в разных местах сайта.
- Возможность расширения функционала с помощью пользовательских шорткодов.
Для разработчиков создание собственных шорткодов — это простой способ добавлять уникальные элементы на сайт без изменения шаблонов.
Как использовать стандартные шорткоды WordPress
WordPress уже содержит несколько встроенных шорткодов. Вот самые распространенные:
[gallery ids="1,2,3"]— выводит галерею изображений по ID.[audio src="url"]— вставка аудиоплеера.[video src="url"]— вставка видеоплеера.[caption id="" align="alignnone" width=""]Текст подписи— добавляет подпись к изображению.
Для использования шорткода достаточно вставить его в редактор контента. Например:
[gallery ids="10,15,20"]
Отобразит галерею из изображений с ID 10, 15 и 20.
Создание пользовательских шорткодов в WordPress
Для создания собственного шорткода нужно зарегистрировать функцию обратного вызова и связать её с определенным тегом шорткода. Делается это с помощью функции add_shortcode().
Пример простого шорткода, который выводит текущую дату:
function expert_review_current_date_shortcode() {
return date('d.m.Y');
}
add_shortcode('current_date', 'expert_review_current_date_shortcode');Теперь в любом месте сайта можно вставить [current_date], и он выведет дату в формате ДД.ММ.ГГГГ.
Параметры шорткода
Шорткоды могут принимать параметры для настройки вывода. Пример расширенного шорткода, который выводит приветствие с именем:
function expert_review_greeting_shortcode($atts) {
$atts = shortcode_atts(array(
'name' => 'Гость'
), $atts, 'greeting');
return 'Привет, ' . esc_html($atts['name']) . '!';
}
add_shortcode('greeting', 'expert_review_greeting_shortcode');Использование: [greeting name="Алексей"] выведет «Привет, Алексей!».
Примеры полезных пользовательских шорткодов
Шорткод для вывода последних записей блога
Иногда нужно вывести список последних постов в любом месте сайта. Вот пример шорткода, который выводит 5 последних записей с ссылками:
function expert_review_latest_posts_shortcode($atts) {
$atts = shortcode_atts(array(
'count' => 5
), $atts, 'latest_posts');
$query = new WP_Query(array(
'posts_per_page' => intval($atts['count']),
'post_status' => 'publish'
));
if (!$query->have_posts()) {
return 'Нет записей для отображения.';
}
$output = '<ul>';
while ($query->have_posts()) {
$query->the_post();
$output .= '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
}
wp_reset_postdata();
$output .= '</ul>';
return $output;
}
add_shortcode('latest_posts', 'expert_review_latest_posts_shortcode');Использование: [latest_posts count="3"] выведет 3 последние записи.
Шорткод с выводом пользовательского поля
Если у записи есть дополнительное поле (custom field), его можно вывести через шорткод. Пример:
function expert_review_custom_field_shortcode($atts) {
$atts = shortcode_atts(array(
'field' => '',
'post_id' => get_the_ID()
), $atts, 'custom_field');
if (empty($atts['field'])) {
return '';
}
$value = get_post_meta($atts['post_id'], $atts['field'], true);
return esc_html($value);
}
add_shortcode('custom_field', 'expert_review_custom_field_shortcode');Использование: [custom_field field="author_name"] выведет значение поля author_name текущей записи.
Рекомендации по безопасности и оптимизации шорткодов
При создании шорткодов важно соблюдать несколько правил:
- Используйте
shortcode_atts()для обработки параметров и установки значений по умолчанию. - Обязательно экранируйте вывод с помощью
esc_html(),esc_url()или других функций, чтобы избежать XSS-уязвимостей. - Используйте
wp_reset_postdata()после пользовательских запросов, чтобы не нарушать глобальный объект$post. - Минимизируйте нагрузку — не создавайте тяжелые запросы без необходимости.
Популярные плагины для работы с шорткодами
Если не хочется создавать шорткоды вручную, можно использовать готовые плагины. Вот несколько полезных:
- Shortcodes Ultimate — самый известный плагин, предлагает более 50 готовых шорткодов с настройками через визуальный редактор.
- WP Shortcode — простой набор базовых шорткодов для форматирования контента.
- Custom Content Shortcode — позволяет создавать собственные короткие коды без написания PHP, с помощью интерфейса.
Эти плагины помогут быстро добавить кнопки, вкладки, аккордеоны, галереи и многое другое без программирования.
Как зарегистрировать шорткод в виде плагина (пример)
Чтобы использовать шорткод и не потерять его при обновлении темы, лучше вынести код в отдельный плагин. Пример минимального плагина для шорткода текущей даты:
<?php
/*
Plugin Name: Expert Review Current Date Shortcode
Description: Добавляет шорткод [current_date] для вывода текущей даты.
Version: 1.0
Author: Expert Review
*/
function expert_review_current_date_shortcode() {
return date('d.m.Y');
}
add_shortcode('current_date', 'expert_review_current_date_shortcode');Сохраните этот код в файл expert-review-current-date.php и загрузите в папку wp-content/plugins/, затем активируйте плагин через админку WordPress.
Заключение
Шорткоды — незаменимый инструмент для расширения функционала WordPress без глубоких знаний программирования. Изучив работу с ними, вы сможете создавать удобные, гибкие и безопасные решения для любых задач на сайте. Практикуйтесь в написании собственных шорткодов, используйте готовые плагины и не забывайте про безопасность и оптимизацию кода.