Шорткоды — один из самых удобных способов добавлять функциональные блоки в контент WordPress без необходимости писать сложный код в каждой статье или на странице. В этой статье мы подробно разберем, как создать свои собственные шорткоды, которые позволят расширить возможности вашего сайта под уникальные задачи.
Что такое шорткоды в WordPress и зачем они нужны
Шорткод — это специальная метка в квадратных скобках, которую WordPress распознает и заменяет на определенный HTML или функциональность при выводе страницы. Например, [gallery] выводит галерею, а [audio] — плеер аудио. Создавая свои шорткоды, вы можете инкапсулировать часто используемые элементы и сложные конструкции, облегчая контент-менеджмент.
Преимущества своих шорткодов:
- Повторное использование кода без дублирования.
- Упрощение редактирования контента для редакторов.
- Возможность передавать параметры для гибкой настройки вывода.
Как зарегистрировать шорткод: базовый пример
Для создания шорткода нужно использовать функцию add_shortcode. Она принимает два аргумента: имя шорткода и callback-функцию, которая формирует вывод.
function wplancer_display_hello( $atts ) {
return '<p>Привет, это мой первый шорткод!</p>';
}
add_shortcode( 'wplancer_hello', 'wplancer_display_hello' );Теперь, если в редакторе записей вставить [wplancer_hello], на странице появится текст «Привет, это мой первый шорткод!».
Обработка атрибутов шорткода
Шорткод может принимать параметры в виде атрибутов. Для их обработки используйте функцию shortcode_atts для задания значений по умолчанию и получения массива параметров.
function wplancer_greeting_shortcode( $atts ) {
$atts = shortcode_atts(
array(
'name' => 'Гость',
'time' => 'день'
), $atts, 'wplancer_greeting'
);
return '<p>Добрый ' . esc_html($atts['time']) . ', ' . esc_html($atts['name']) . '!</p>';
}
add_shortcode( 'wplancer_greeting', 'wplancer_greeting_shortcode' );Теперь [wplancer_greeting name="Иван" time="вечер"] выведет «Добрый вечер, Иван!».
Пример сложного шорткода с выводом списка последних записей
Рассмотрим создание шорткода, который будет выводить список последних записей с возможностью ограничения по количеству и категории.
function wplancer_recent_posts_shortcode( $atts ) {
$atts = shortcode_atts(
array(
'count' => 5,
'category' => ''
), $atts, 'wplancer_recent_posts'
);
$args = array(
'posts_per_page' => intval($atts['count']),
'post_status' => 'publish'
);
if ( !empty($atts['category']) ) {
$args['category_name'] = sanitize_text_field($atts['category']);
}
$posts = get_posts($args);
if ( empty($posts) ) {
return '<p>Посты не найдены.</p>';
}
$output = '<ul>';
foreach ( $posts as $post ) {
$title = esc_html(get_the_title($post));
$link = esc_url(get_permalink($post));
$output .= '<li><a href="' . $link . '">' . $title . '</a></li>';
}
$output .= '</ul>';
return $output;
}
add_shortcode( 'wplancer_recent_posts', 'wplancer_recent_posts_shortcode' );Пример использования:
[wplancer_recent_posts count="3"]— последние 3 записи;[wplancer_recent_posts count="10" category="novosti"]— 10 последних записей из категории «новости».
Полезные плагины для работы с шорткодами в WordPress
Если вы не хотите вручную писать шорткоды, можно использовать плагины, которые расширяют возможности или упрощают создание:
- Shortcodes Ultimate — мощный набор готовых шорткодов для кнопок, аккордеонов, галерей и др.
- WP Shortcode — простой плагин с базовым набором элементов для вставки в контент.
- Custom Content Shortcode — позволяет создавать собственные шорткоды без программирования через админку.
Эти плагины помогут быстро добавить интерактивные элементы на сайт без глубоких знаний PHP.
Как отлаживать шорткоды и избегать ошибок
При создании шорткодов важно контролировать несколько моментов:
- Используйте
esc_html()иesc_url()для вывода данных, чтобы избежать XSS-уязвимостей. - Проверяйте корректность переданных атрибутов, задавайте значения по умолчанию.
- Если шорткод выводит сложный HTML, старайтесь формировать его в переменной и возвращать, а не выводить напрямую.
- Для отладки используйте
error_log()или плагины отладки, например Debug Bar.
Заключение
Создание собственных шорткодов в WordPress — это простой способ расширить функциональность сайта и сделать контент более динамичным и удобным для редактирования. Используя примеры из этой статьи, вы сможете быстро реализовать нужные блоки под свои задачи и повысить качество вашего проекта.