Шорткоды в WordPress — это мощный инструмент, позволяющий вставлять сложные элементы и функциональность прямо в содержимое страниц и записей без необходимости писать HTML или PHP каждый раз заново. В этой статье мы подробно разберём, как создать собственный шорткод, который можно использовать для вывода динамического контента, а также рассмотрим примеры кода и лучшие практики.
Что такое шорткод и зачем он нужен в WordPress
Шорткод — это специальный тег в квадратных скобках, например [myshortcode], который WordPress заменяет на определённый контент или функциональность. Это удобно, когда нужно многократно использовать один и тот же элемент с динамическими данными или сложной версткой.
Например, если вы хотите вставлять формы обратной связи, таблицы цен, галереи или кастомные блоки с информацией, можно создать шорткод, который будет автоматически подставлять нужный код.
Создание собственных шорткодов помогает сделать сайт более гибким и удобным для контент-менеджеров, которые не владеют программированием.
Как создать простой шорткод в WordPress
Для создания собственного шорткода нужно использовать функцию add_shortcode. Она принимает два параметра: название шорткода и функцию, которая возвращает или выводит контент.
Пример простого шорткода, который выводит приветствие:
function wpstandart_hello_shortcode() {
return '<p>Привет, это мой первый шорткод!</p>';
}
add_shortcode('wpstandart_hello', 'wpstandart_hello_shortcode');После добавления этого кода в файл functions.php вашей темы или в отдельный плагин, вы сможете использовать в редакторе WordPress тег [wpstandart_hello], и на странице появится текст приветствия.
Обработка параметров в шорткодах
Часто необходимо, чтобы шорткод принимал параметры, например, цвет текста, заголовок или количество элементов. Для этого функция шорткода принимает аргумент с параметрами.
Рассмотрим пример шорткода, который выводит цветной заголовок:
function wpstandart_colored_title_shortcode($atts, $content = null) {
$atts = shortcode_atts(
array('color' => 'blue'), $atts, 'wpstandart_colored_title'
);
return '<h2 style="color:' . esc_attr($atts['color']) . '">' . esc_html($content) . '</h2>';
}
add_shortcode('wpstandart_colored_title', 'wpstandart_colored_title_shortcode');Теперь, чтобы вывести заголовок красного цвета, нужно написать в редакторе:
[wpstandart_colored_title color="red"]Мой заголовок[/wpstandart_colored_title]
Если параметр не указан, цвет будет синим по умолчанию.
Пример: шорткод для вывода последних записей блога
Рассмотрим более сложный пример — шорткод, который выводит список последних записей с их заголовками и ссылками.
function wpstandart_recent_posts_shortcode($atts) {
$atts = shortcode_atts(
array('count' => 5), $atts, 'wpstandart_recent_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('wpstandart_recent_posts', 'wpstandart_recent_posts_shortcode');Использовать шорткод можно так:
[wpstandart_recent_posts count="3"]
Этот шорткод выведет список из трёх последних записей блога с ссылками.
Полезные плагины для работы с шорткодами
Shortcodes Ultimate
Очень популярный плагин, который предоставляет большой набор готовых шорткодов для различных целей: кнопки, колонки, слайдеры, табы и многое другое. Его можно использовать как вспомогательный инструмент, если не хочется писать шорткоды вручную.
Custom Shortcodes
Плагин для создания и управления собственными шорткодами через админку, без необходимости писать код. Удобно для пользователей без навыков программирования.
Code Snippets
Хотя этот плагин не создаёт шорткоды напрямую, он позволяет удобно добавлять свои PHP-функции (в том числе шорткоды) без редактирования файлов темы или плагинов, что снижает риск ошибок и упрощает поддержку.
Советы и лучшие практики при создании шорткодов
- Всегда используйте префиксы в именах функций и шорткодов, чтобы избежать конфликтов. В нашем случае это
wpstandart_. - Обязательно экранируйте данные, выводимые в HTML, с помощью
esc_html(),esc_attr()и других функций безопасности. - Если шорткод выводит сложный HTML, лучше возвращать строку, а не использовать
echo. - Для сложных задач используйте классы и отдельные файлы, чтобы код оставался чистым и поддерживаемым.
- Тестируйте шорткоды на разных темах и с другими плагинами, чтобы убедиться в их совместимости.
Создание собственных шорткодов — отличное решение для расширения функционала WordPress, позволяющее значительно упростить работу с контентом и сделать сайт более гибким и удобным для редакторов.