Шорткоды в WordPress — это мощный инструмент, позволяющий добавлять динамический контент в записи, страницы и виджеты без необходимости писать длинный код вручную. В этой статье мы подробно разберем, как создать собственный шорткод, которые решит конкретные задачи вашего сайта, а также рассмотрим примеры реализации и особенности использования.
Что такое шорткод в WordPress и зачем он нужен
Шорткод — это упрощённый синтаксис, который позволяет вставлять в контент сложные функции или блоки кода. Он обозначается в тексте квадратными скобками, например, [wplink_example]. WordPress заменяет этот шорткод на результат выполнения связанной с ним функции.
Использование шорткодов значительно облегчает добавление функциональности и управление контентом без необходимости редактировать файлы темы или плагина.
Типичные задачи, решаемые с помощью шорткодов:
- Вставка галерей, видео или кастомных блоков
- Отображение динамических данных, например, последних записей или пользовательской информации
- Добавление форм обратной связи
Как создать простой шорткод в WordPress
Для создания собственного шорткода нужно зарегистрировать его с помощью функции add_shortcode. Ниже пример простого шорткода, который выводит приветственное сообщение:
function wplink_hello_shortcode() {
return '<p>Привет, это шорткод wplink!</p>';
}
add_shortcode('wplink_hello', 'wplink_hello_shortcode');Добавьте этот код в файл functions.php вашей темы или в отдельный плагин. После этого в редакторе WordPress вы сможете использовать шорткод [wplink_hello], и он выведет указанное сообщение.
Пояснения к коду
Функция wplink_hello_shortcode возвращает HTML-строку, которую WordPress вставит на место шорткода. Обратите внимание, что лучше возвращать значения, а не сразу выводить их через echo.
Шорткод с параметрами: как передавать и использовать аргументы
Шорткоды могут принимать параметры, которые позволяют динамически менять вывод. Например, создадим шорткод, который будет принимать имя пользователя и выводить персональное приветствие.
function wplink_greet_shortcode($atts) {
$atts = shortcode_atts(
array(
'name' => 'Гость',
), $atts, 'wplink_greet'
);
return '<p>Привет, ' . esc_html($atts['name']) . '! Добро пожаловать на наш сайт.</p>';
}
add_shortcode('wplink_greet', 'wplink_greet_shortcode');Пример использования в контенте: [wplink_greet name="Иван"]. Если параметр не указан, будет использовано значение по умолчанию — «Гость».
Обработка и безопасность параметров
Обязательно используйте функцию esc_html() или аналогичные для экранирования пользовательских данных, чтобы предотвратить XSS-уязвимости.
Пример: шорткод для вывода последних записей с кастомными параметрами
Рассмотрим более сложный пример — шорткод, который выводит список последних записей с возможностью указать количество и категорию.
function wplink_latest_posts_shortcode($atts) {
$atts = shortcode_atts(
array(
'count' => 5,
'category' => '',
), $atts, 'wplink_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="' . get_permalink() . '">' . get_the_title() . '</a></li>';
}
wp_reset_postdata();
$output .= '</ul>';
return $output;
}
add_shortcode('wplink_latest_posts', 'wplink_latest_posts_shortcode');Пример использования: [wplink_latest_posts count="3" category="novosti"] выведет 3 последние записи из категории «novosti».
Как зарегистрировать шорткод, чтобы он работал в виджетах и других местах
По умолчанию шорткоды работают в редакторе контента. Чтобы использовать их в виджетах текстового типа или в шаблонах, необходимо дополнительно вызвать функцию do_shortcode().
Например, в PHP-шаблоне можно вывести шорткод так:
echo do_shortcode('[wplink_hello]');Для виджетов с текстом убедитесь, что в настройках включена поддержка шорткодов, либо добавьте в functions.php следующий код:
add_filter('widget_text', 'do_shortcode');Рекомендуемые плагины для работы с шорткодами
Если не хочется писать шорткоды вручную, можно использовать плагины, которые упрощают создание и управление шорткодами:
- Shortcodes Ultimate — один из самых популярных наборов готовых шорткодов с визуальным редактором.
- WP Shortcode by MyThemeShop — простой набор основных шорткодов для контента.
- Custom Content Shortcode — позволяет создавать шорткоды для любых HTML и PHP блоков.
Но для уникальной функциональности лучше создавать собственные шорткоды, адаптированные к вашим нуждам.
Советы по созданию эффективных шорткодов
При разработке шорткодов важно учитывать несколько правил:
- Используйте уникальные префиксы в названиях функций и шорткодов, например,
wplink_, чтобы избежать конфликтов с другими плагинами. - Всегда экранируйте входящие данные с помощью функций
esc_html(),sanitize_text_field()и других. - Возвращайте результат из функции, а не используйте
echo. - Документируйте параметры шорткода и давайте понятные имена.
- Тестируйте шорткод в различных условиях и на разных типах контента.