Шорткоды — это мощный инструмент WordPress, позволяющий вставлять динамический контент в страницы, записи и виджеты без сложного программирования. В этой статье мы подробно разберем, как создать собственный шорткод с префиксом wp24_, который будет удобным и безопасным для использования на вашем сайте.
Что такое шорткод WordPress и зачем он нужен
Шорткод — это специальный тег в квадратных скобках, например [example], который WordPress заменяет на определенный контент при выводе страницы. Это позволяет разработчикам и пользователям легко добавлять функционал без изменения кода темы.
Примеры использования шорткодов:
- Вывод галереи изображений
- Встраивание форм обратной связи
- Показ цен и тарифов
- Динамический контент, например, дата или пользовательские данные
Создание собственных шорткодов расширяет возможности сайта и делает его более удобным и функциональным.
Создаем простой шорткод с префиксом WP24
Для начала создадим функцию, которая будет возвращать простой текст и зарегистрируем её как шорткод. В целях предотвращения конфликтов в именах функций добавим префикс wp24_.
Добавьте следующий код в файл functions.php вашей темы или в файл собственного плагина:
function wp24_hello_shortcode() {
return '<p>Привет от WP24! Это простой шорткод.</p>';
}
add_shortcode('wp24_hello', 'wp24_hello_shortcode');Теперь в любом месте контента вы можете использовать шорткод [wp24_hello], и он выведет текст «Привет от WP24! Это простой шорткод.»
Разбор кода
Функция wp24_hello_shortcode возвращает HTML-строку. Функция зарегистрирована через add_shortcode с именем шорткода wp24_hello. WordPress автоматически заменит вызов шорткода на содержимое, возвращаемое функцией.
Добавляем параметры к шорткоду: динамический вывод
Шорткод может принимать параметры, которые позволяют управлять выводом. Давайте расширим предыдущий пример и добавим параметр name, чтобы персонализировать приветствие.
function wp24_hello_shortcode($atts) {
$atts = shortcode_atts(
array('name' => 'гость'), $atts, 'wp24_hello'
);
return '<p>Привет, ' . esc_html($atts['name']) . '! Добро пожаловать на WP24.</p>';
}
add_shortcode('wp24_hello', 'wp24_hello_shortcode');Теперь шорткод можно использовать так: [wp24_hello name="Иван"], и он выведет «Привет, Иван! Добро пожаловать на WP24.»
Безопасность вывода
Обратите внимание на функцию esc_html(), которая экранирует вывод, предотвращая XSS-уязвимости в случае передачи вредоносных данных через параметры.
Пример: шорткод для вывода последних записей с кастомными параметрами
Рассмотрим более сложный пример, в котором шорткод будет выводить список последних записей блога с возможностью указать количество и категорию.
function wp24_latest_posts_shortcode($atts) {
$atts = shortcode_atts(
array(
'count' => 5,
'category' => ''
), $atts, 'wp24_latest_posts'
);
$args = array(
'posts_per_page' => intval($atts['count']),
'post_status' => 'publish'
);
if (!empty($atts['category'])) {
$args['category_name'] = sanitize_text_field($atts['category']);
}
$query = new WP_Query($args);
if (!$query->have_posts()) {
return '<p>Записи не найдены.</p>';
}
$output = '<ul>';
while ($query->have_posts()) {
$query->the_post();
$output .= '<li><a href="' . esc_url(get_permalink()) . '">' . esc_html(get_the_title()) . '</a></li>';
}
wp_reset_postdata();
$output .= '</ul>';
return $output;
}
add_shortcode('wp24_latest_posts', 'wp24_latest_posts_shortcode');Используйте шорткод так:
[wp24_latest_posts count="3"]— выведет 3 последних записи;[wp24_latest_posts count="5" category="novosti"]— выведет 5 последних записей из категории «novosti».
Объяснение
Мы создаем объект WP_Query с параметрами для выборки записей. В цикле формируем HTML-список с ссылками. Используем функции esc_url и esc_html для безопасного вывода.
Рекомендации по разработке шорткодов на WordPress
Используйте префиксы для функций и шорткодов
Чтобы избежать конфликтов с другими плагинами и темами, обязательно добавляйте уникальные префиксы к именам функций и шорткодов. В нашем случае мы используем wp24_, что логично для сайта wp24.ru.
Обрабатывайте и проверяйте входящие данные
Всегда используйте функции WordPress для очистки и экранирования входящих параметров шорткода: sanitize_text_field, intval, esc_html, esc_url и т.п. Это повысит безопасность и стабильность работы вашего кода.
Избегайте вывода напрямую — возвращайте строки
Функция шорткода должна возвращать HTML как строку, а не выводить его сразу. Это позволяет WordPress корректно обрабатывать и вставлять контент.
Используйте wp_reset_postdata() после кастомных запросов
Если в шорткоде используется WP_Query или другие функции для выборки записей, обязательно сбрасывайте глобальные данные поста после цикла, чтобы не нарушить работу остального контента страницы.
Полезные плагины для работы со шорткодами в WordPress
Рассмотрим несколько плагинов, которые могут упростить разработку и использование шорткодов:
- Shortcodes Ultimate — набор готовых шорткодов с визуальным редактором.
- WP Shortcode by MyThemeShop — удобный плагин для создания и управления шорткодами.
- Custom Content Shortcode — позволяет создавать свои шорткоды с минимальными усилиями.
Однако для максимальной гибкости и уникальности лучше писать собственные шорткоды, как показано в этой статье.