Шорткоды — один из самых удобных инструментов в WordPress для вставки динамического контента и кастомных элементов прямо в записи, страницы или виджеты без необходимости писать сложный код каждый раз. Если вы ещё не использовали шорткоды или хотите создавать собственные, эта статья поможет разобраться с основами, примерами и настройками.
Что такое шорткоды в WordPress и зачем они нужны
Шорткод — это упрощённый код в квадратных скобках, например [gallery], который WordPress заменяет на более сложный HTML, PHP или JavaScript. Шорткоды позволяют легко внедрять функциональность, например, вывод галереи, форм, кнопок или динамических данных, не разбираясь в программировании.
Основные преимущества шорткодов:
- Удобство использования — вставляйте функционал без кода.
- Повторное использование — создавайте универсальные решения для разных страниц.
- Гибкость — можно передавать параметры и настраивать вывод.
Например, плагин Contact Form 7 использует шорткоды для вывода форм: [contact-form-7 id="123" title="Форма обратной связи"].
Как создать свой шорткод в WordPress: базовый пример
Для создания собственного шорткода используется функция add_shortcode. Рассмотрим простой пример для сайта wptemp.ru, где шорткод будет выводить текущую дату.
function wptemp_current_date_shortcode() {
return date('d.m.Y');
}
add_shortcode('wptemp_current_date', 'wptemp_current_date_shortcode');После добавления этого кода в файл functions.php вашей темы или в плагин, можно использовать шорткод [wptemp_current_date] в любом месте сайта, и он выведет текущую дату в формате ДД.ММ.ГГГГ.
Обратите внимание, что функция называется с префиксом wptemp_, чтобы избежать конфликтов с другими плагинами или темами.
Добавление параметров в шорткод: динамическая настройка вывода
Чтобы сделать шорткод более универсальным, можно передавать параметры. Например, добавим параметр format, чтобы менять формат даты:
function wptemp_current_date_shortcode($atts) {
$atts = shortcode_atts(
array('format' => 'd.m.Y'),
$atts,
'wptemp_current_date'
);
return date($atts['format']);
}
add_shortcode('wptemp_current_date', 'wptemp_current_date_shortcode');Теперь вызов [wptemp_current_date format="Y-m-d"] выведет дату в формате 2024-06-10. Это позволяет гибко настраивать вывод без изменения кода.
Примеры полезных шорткодов для сайта на WordPress
1. Кнопка с настраиваемым текстом и ссылкой
Часто нужно вставлять кнопки с разными ссылками. Создадим шорткод для кнопки:
function wptemp_button_shortcode($atts) {
$atts = shortcode_atts(
array(
'url' => '#',
'text' => 'Нажми меня',
'color' => '#0073aa'
),
$atts,
'wptemp_button'
);
return '<a href="'.esc_url($atts['url']).'" style="display:inline-block;padding:10px 20px;background:'.esc_attr($atts['color']).';color:#fff;text-decoration:none;border-radius:3px;">'.esc_html($atts['text']).'</a>';
}
add_shortcode('wptemp_button', 'wptemp_button_shortcode');Пример использования: [wptemp_button url="https://wptemp.ru" text="Перейти на сайт" color="#ff6600"]
2. Вывод последних записей блога
Полезно показывать список последних постов в любом месте сайта:
function wptemp_latest_posts_shortcode($atts) {
$atts = shortcode_atts(array('count' => 5), $atts, 'wptemp_latest_posts');
$query = new WP_Query(array('posts_per_page' => intval($atts['count']), 'post_status' => 'publish'));
if (!$query->have_posts()) return '<p>Нет записей</p>';
$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('wptemp_latest_posts', 'wptemp_latest_posts_shortcode');Добавьте [wptemp_latest_posts count="3"] для показа трёх последних публикаций.
Использование плагинов для расширения функционала шорткодов
Если не хочется писать код, можно использовать плагины. Вот несколько полезных вариантов:
- Shortcoder — позволяет создавать собственные шорткоды с HTML, CSS, JS без программирования.
- WP Shortcode — набор готовых шорткодов для кнопок, колонок, табов и другого.
- Shortcodes Ultimate — мощный плагин с большим набором визуальных шорткодов и редактором.
Эти инструменты помогут быстро добавить функциональность на сайт без глубоких знаний PHP.
Советы по безопасности и производительности при работе с шорткодами
При разработке шорткодов важно учитывать безопасность:
- Всегда экранируйте входящие данные с помощью
esc_html,esc_urlи подобных функций. - Используйте
shortcode_attsдля обработки параметров и установки значений по умолчанию. - Не выводите напрямую пользовательский ввод без проверки.
Для производительности избегайте лишних запросов к базе данных внутри шорткодов, особенно если они часто используются на странице.
Как зарегистрировать шорткод в плагине для wptemp.ru
Если планируете использовать шорткоды в собственном плагине, структура будет примерно такой:
/**
* Plugin Name: WPTEMP Shortcodes
* Description: Набор кастомных шорткодов для сайта wptemp.ru
* Version: 1.0
* Author: Ваше Имя
*/
function wptemp_plugin_sample_shortcode() {
return 'Это пример шорткода из плагина WPTEMP';
}
add_shortcode('wptemp_sample', 'wptemp_plugin_sample_shortcode');Так вы отделите функционал от темы и сможете обновлять его отдельно.