Шорткоды в WordPress — это мощный инструмент, позволяющий добавлять динамический контент в записи, страницы и виджеты с помощью простых коротких тегов. Создание собственного шорткода позволяет расширить функциональность сайта без необходимости модифицировать темы или плагины напрямую.
Что такое шорткод в WordPress и зачем он нужен
Шорткод — это специальный тег в квадратных скобках, например, [wpscan_example], который WordPress заменяет на определённый контент или функциональность при отображении страницы. Они упрощают добавление сложных элементов, таких как галереи, формы, кнопки и другие интерактивные блоки, без знания HTML или PHP.
Использование собственных шорткодов помогает сделать контент более гибким и удобным для редактирования. Например, можно создать шорткод для вывода списка последних записей, вставки пользовательской формы или интеграции с внешними сервисами.
Как зарегистрировать собственный шорткод в WordPress
Для создания шорткода нужно использовать функцию add_shortcode(). Она принимает два параметра: имя шорткода и функцию, которая будет возвращать HTML или другой контент для замены шорткода.
Пример базового шорткода:
function wpscan_show_date() {
return date('Y-m-d H:i:s');
}
add_shortcode('wpscan_date', 'wpscan_show_date');Теперь, если в записи написать [wpscan_date], на сайте появится текущая дата и время.
Советы по именованию функций шорткодов
Рекомендуется использовать префиксы (например, wpscan_), чтобы избежать конфликтов с другими функциями и плагинами. Это улучшает читаемость и поддержку кода.
Передача атрибутов в шорткод
Часто нужно, чтобы шорткод принимал параметры, чтобы изменять вывод. Атрибуты передаются в функцию обработчик как массив.
Пример шорткода с атрибутами:
function wpscan_greeting_shortcode($atts) {
$atts = shortcode_atts(
array(
'name' => 'Гость',
'color' => 'blue',
), $atts, 'wpscan_greeting'
);
return '<p style="color: ' . esc_attr($atts['color']) . '">Привет, ' . esc_html($atts['name']) . '!</p>';
}
add_shortcode('wpscan_greeting', 'wpscan_greeting_shortcode');Использование: [wpscan_greeting name="Андрей" color="green"] выведет приветствие зелёным цветом.
Пример: создание шорткода для вывода последних записей блога
Допустим, нужно сделать шорткод, который покажет последние N записей с ссылками. Вот пример с параметром count:
function wpscan_latest_posts_shortcode($atts) {
$atts = shortcode_atts(array(
'count' => 5,
), $atts, 'wpscan_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('wpscan_latest_posts', 'wpscan_latest_posts_shortcode');Использование: [wpscan_latest_posts count="3"] выведет список из трёх последних записей.
Безопасность и оптимизация шорткодов
При создании шорткодов важно учитывать безопасность. Всегда экранируйте выводимые данные с помощью функций esc_html(), esc_attr(), wp_kses_post() и других.
Не делайте тяжелые запросы или операции внутри шорткода, чтобы не замедлять загрузку страниц. Если нужно выполнять сложные действия, лучше кешировать результат или использовать AJAX.
Популярные плагины для работы с шорткодами
Если не хочется писать код вручную, можно использовать плагины, расширяющие возможности шорткодов:
- Shortcodes Ultimate — богатый набор готовых шорткодов с визуальным редактором.
- WP Shortcode by MyThemeShop — удобный плагин с популярными элементами.
- Custom Shortcodes — позволяет создавать свои шорткоды через интерфейс.
Однако собственные шорткоды всегда более гибкие и адаптированы под конкретные задачи.
Заключение: когда создавать собственный шорткод
Создание собственного шорткода оправдано, когда нужно часто вставлять повторяющийся динамический контент или функциональность в записи и страницы. Это облегчает работу контент-менеджеров и упрощает поддержку сайта.
Используйте приведённые примеры и рекомендации для разработки своих шорткодов, соблюдая безопасность и производительность.