Шорткоды в WordPress — это мощный инструмент, который позволяет добавлять динамический контент в записи и страницы без необходимости писать повторяющийся код. Многие разработчики и контент-менеджеры используют их для упрощения работы с сайтом. В этой статье мы подробно разберем, как создать собственный шорткод, какие возможности он предоставляет и приведем практические примеры с кодом.
Что такое шорткод в WordPress и зачем он нужен
Шорткод — это специальный тег в квадратных скобках, который WordPress автоматически обрабатывает и заменяет на определенный контент при выводе страницы. Например, [gallery] — встроенный шорткод для отображения галереи изображений.
Создание собственных шорткодов позволяет:
- Вставлять сложный HTML и PHP код в записи без дублирования
- Автоматизировать вывод динамического контента
- Давать пользователям удобный интерфейс для добавления функционала
Таким образом, шорткоды упрощают управление контентом и расширяют возможности сайта.
Как правильно создать шорткод в WordPress: базовый пример
Чтобы создать шорткод, нужно зарегистрировать функцию обратного вызова, которая будет возвращать нужный HTML или другой контент, и связать ее с именем шорткода через add_shortcode.
Например, создадим простой шорткод [wpaction_hello], который выводит приветствие:
function wpaction_hello_shortcode() {
return '<p>Привет от WPAction!</p>';
}
add_shortcode('wpaction_hello', 'wpaction_hello_shortcode');Добавьте этот код в файл functions.php вашей темы или используйте плагин для пользовательских функций. После этого в любом месте записи можно вставить [wpaction_hello], и там появится приветствие.
Разбор кода
Функция wpaction_hello_shortcode возвращает строку с HTML, которая и подставляется вместо шорткода. Функция add_shortcode связывает имя шорткода с функцией.
Как передавать параметры в шорткод и использовать их
Часто нужно сделать шорткод более гибким, позволяя передавать параметры. Это делается с помощью второго аргумента функции — массива атрибутов.
Расширим наш пример, добавив параметр name, который будет менять имя в приветствии:
function wpaction_hello_shortcode($atts) {
$atts = shortcode_atts(
array('name' => 'Гость'),
$atts,
'wpaction_hello'
);
return '<p>Привет, ' . esc_html($atts['name']) . '!</p>';
}
add_shortcode('wpaction_hello', 'wpaction_hello_shortcode');Теперь в записи можно писать [wpaction_hello name="Иван"], и выведется "Привет, Иван!".
Пояснения
shortcode_attsзадает значения по умолчанию для параметров- Используем
esc_htmlдля безопасности вывода - Параметры передаются в виде атрибутов шорткода
Пример сложного шорткода: вывод списка последних записей с настройками
Давайте создадим шорткод, который будет выводить список последних записей блога с параметрами для количества и категории.
function wpaction_latest_posts_shortcode($atts) {
$atts = shortcode_atts(
array(
'count' => 5,
'category' => ''
),
$atts,
'wpaction_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('wpaction_latest_posts', 'wpaction_latest_posts_shortcode');Использование шорткода:
[wpaction_latest_posts count="3"]— выведет 3 последних записи[wpaction_latest_posts count="5" category="novosti"]— 5 последних из категории "новости"
Использование популярных плагинов для работы с шорткодами
Для расширения функционала шорткодов можно использовать плагины:
- Shortcodes Ultimate — коллекция готовых шорткодов с удобным визуальным редактором
- WP Shortcode by MyThemeShop — простой набор полезных шорткодов для контента
- Custom Content Shortcode — позволяет создавать свои шорткоды с помощью пользовательских функций
Эти плагины помогут сэкономить время и добавить интерактивные элементы без программирования.
Советы по безопасности и производительности при создании шорткодов
Шорткоды могут содержать PHP-код и взаимодействовать с базой данных, поэтому важно соблюдать правила безопасности:
- Всегда фильтруйте и экранируйте входящие данные:
esc_html,sanitize_text_field,intvalи др. - Избегайте тяжелых запросов в цикле — используйте кэширование, если выводите много данных
- Не выводите напрямую пользовательский ввод без обработки
Также старайтесь писать оптимизированный код, чтобы не замедлять загрузку страниц.
Итог
Создание собственных шорткодов в WordPress — отличный способ расширить функциональность сайта и упростить работу с контентом. С помощью нескольких строк кода можно сделать мощный инструмент для динамического вывода данных. Используйте приведённые примеры, чтобы начать создавать свои шорткоды уже сегодня на wpaction.ru!