Шорткоды в WordPress — это мощный инструмент, который позволяет добавлять динамический контент в записи и страницы без необходимости писать HTML или PHP код вручную. В этой статье мы подробно разберем, как создать собственный шорткод, который расширит возможности вашего сайта и упростит работу с контентом.
Что такое шорткоды и зачем они нужны
Шорткод — это специальный тег в квадратных скобках, который WordPress распознает и заменяет на определённый функционал. Например, вы можете использовать стандартные шорткоды для вставки галерей, видео, форм и других элементов.
Создание собственных шорткодов полезно, если вы хотите повторно использовать какой-то функционал или выводить данные, которые не поддерживаются стандартными средствами. Это экономит время и упрощает редактирование контента, особенно если вы не хотите каждый раз писать сложный код.
Пример стандартного шорткода: [gallery]. Чтобы создать такой же, но с вашей логикой, нужно написать функцию и зарегистрировать её.
Как зарегистрировать собственный шорткод в WordPress
Регистрация шорткода происходит с помощью функции add_shortcode(). Она принимает два параметра: тег шорткода и функцию-обработчик, которая возвращает HTML или другой вывод.
Рассмотрим простой пример. Создадим шорткод [wpbloger_hello], который будет выводить приветствие.
function wpbloger_hello_shortcode() {
return '<p>Привет от wpbloger.ru!</p>';
}
add_shortcode('wpbloger_hello', 'wpbloger_hello_shortcode');Этот код можно добавить в файл functions.php вашей темы или в собственный плагин. После этого в любом месте контента на сайте достаточно написать [wpbloger_hello], и вы увидите приветствие.
Советы по написанию функций для шорткодов
Функция должна всегда возвращать, а не выводить содержимое. Это важно, чтобы WordPress корректно вставлял вывод в нужное место. Если использовать echo, то могут возникнуть проблемы с формированием страницы.
Также рекомендуется использовать префикс в именах функций — например, wpbloger_ — чтобы избежать конфликтов с другими плагинами и темами.
Шорткод с параметрами — как передавать аргументы
Очень часто нужно делать шорткод более гибким, передавая в него параметры. Например, вы хотите, чтобы шорткод выводил приветствие с именем пользователя или менял стиль вывода.
Параметры передаются в виде атрибутов, например: [wpbloger_greeting name="Иван" color="#ff0000"].
Рассмотрим пример функции с параметрами:
function wpbloger_greeting_shortcode($atts) {
$atts = shortcode_atts(
array(
'name' => 'Гость',
'color' => '#000000',
), $atts, 'wpbloger_greeting'
);
return '<p style="color:' . esc_attr($atts['color']) . ';">Привет, ' . esc_html($atts['name']) . '! Добро пожаловать на wpbloger.ru.</p>';
}
add_shortcode('wpbloger_greeting', 'wpbloger_greeting_shortcode');Здесь мы используем функцию shortcode_atts() для установки значений по умолчанию и защиту от ошибок. Функции esc_attr() и esc_html() обеспечивают безопасность вывода.
Примеры полезных шорткодов для сайта на WordPress
1. Вывод текущей даты в нужном формате
Иногда нужно показывать дату публикации или текущую дату в тексте. Сделаем шорткод, который выводит дату в формате дд.мм.гггг.
function wpbloger_current_date_shortcode() {
return date('d.m.Y');
}
add_shortcode('wpbloger_date', 'wpbloger_current_date_shortcode');Используйте [wpbloger_date] в тексте, чтобы автоматически вставлять дату.
2. Вставка кнопки с кастомным текстом и ссылкой
Создадим шорткод для кнопки, где можно менять текст и URL:
function wpbloger_button_shortcode($atts) {
$atts = shortcode_atts(array(
'text' => 'Нажми меня',
'url' => '#',
'color' => '#0085ba',
), $atts, 'wpbloger_button');
return '<a href="' . esc_url($atts['url']) . '" style="padding:10px 20px; background-color:' . esc_attr($atts['color']) . '; color:#fff; text-decoration:none; border-radius:4px;">' . esc_html($atts['text']) . '</a>';
}
add_shortcode('wpbloger_button', 'wpbloger_button_shortcode');Пример использования: [wpbloger_button text="Перейти на wpbloger.ru" url="https://wpbloger.ru" color="#ff6600"]
Как оптимизировать шорткоды для производительности
Шорткоды могут влиять на скорость загрузки страниц, если внутри них выполняются тяжелые операции — запросы к базе, внешние API и т.д. Чтобы этого избежать, следуйте рекомендациям:
- Кешируйте результаты, если данные не меняются часто.
- Минимизируйте количество запросов к базе данных.
- Используйте транзиенты WordPress для временного хранения данных.
- Проверяйте, что ваши функции не вызываются лишний раз.
Например, если шорткод выводит список популярных записей, лучше получить их один раз и сохранить в кеше, а не делать запрос при каждом вызове.
Заключение по созданию собственных шорткодов
Создание собственных шорткодов — простой и эффективный способ расширить возможности сайта на WordPress. Используя правильный подход, вы сможете внедрять уникальные функции, улучшать удобство редактирования и делать сайт более интерактивным. В статье приведены базовые и продвинутые примеры, которые помогут быстро начать работу с шорткодами.