В WordPress шорткоды — это мощный инструмент, позволяющий вставлять динамический контент в записи, страницы или виджеты без необходимости писать сложный HTML или PHP-код каждый раз. Если вы хотите добавить уникальную функциональность на сайт journalx.ru, создание собственного шорткода — отличный способ решить эту задачу.
Что такое шорткод и зачем он нужен
Шорткод — это небольшой сниппет в квадратных скобках, например [example], который WordPress интерпретирует и заменяет на определённый контент или функционал. Это удобный способ добавить сложные элементы в редактор без прямого вмешательства в код темы или плагинов.
Например, стандартный шорткод [gallery] выводит галерею изображений. Но если вам нужна кастомная галерея или другой функционал, тогда стоит написать свой шорткод.
Как создать собственный шорткод: пошаговая инструкция
1. Регистрация шорткода в functions.php
Все начинается с написания функции, которая будет генерировать нужный нам вывод, и регистрации этой функции как шорткода.
function journalx_custom_shortcode($atts, $content = null) {
// Обработка атрибутов с дефолтными значениями
$atts = shortcode_atts(array(
'title' => 'Заголовок по умолчанию',
'count' => 5
), $atts, 'journalx_shortcode');
// Формируем HTML вывод
$output = '<div class="journalx-shortcode">';
$output .= '<h3>' . esc_html($atts['title']) . '</h3>';
$output .= '<ul>';
for ($i = 1; $i <= intval($atts['count']); $i++) {
$output .= '<li>Пункт ' . $i . '</li>';
}
$output .= '</ul>';
$output .= '</div>';
return $output;
}
add_shortcode('journalx_shortcode', 'journalx_custom_shortcode');В этом примере мы создали шорткод [journalx_shortcode title="Мой список" count="3"], который выведет список с заголовком и заданным количеством пунктов.
2. Использование атрибутов в шорткоде
Атрибуты позволяют делать шорткод гибким и настраиваемым. В примере выше мы используем shortcode_atts для установки значений по умолчанию, которые можно переопределить при использовании шорткода.
Вы можете добавить любые параметры — цвета, ID постов, ссылки и т.д. Важно всегда обрабатывать и экранировать данные для безопасности.
Пример более сложного шорткода: вывод последних записей блога
Давайте создадим шорткод, который выводит список последних записей блога с ссылками и датами публикации.
function journalx_latest_posts_shortcode($atts) {
$atts = shortcode_atts(array(
'count' => 5,
'category' => ''
), $atts, 'journalx_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 class="journalx-latest-posts">';
while ($query->have_posts()) {
$query->the_post();
$output .= '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a> – <em>' . get_the_date() . '</em></li>';
}
$output .= '</ul>';
wp_reset_postdata();
return $output;
}
add_shortcode('journalx_latest_posts', 'journalx_latest_posts_shortcode');Используйте шорткод [journalx_latest_posts count="3" category="novosti"], чтобы вывести 3 последние записи из категории «новости».
Полезные советы по созданию шорткодов в WordPress
Безопасность и экранирование данных
Всегда экранируйте выводимые данные с помощью функций esc_html(), esc_url() и подобных. Это защитит сайт от XSS-атак и некорректного вывода.
Оптимизация производительности
Не выполняйте тяжёлые запросы или операции в шорткодах, которые могут замедлить загрузку страниц. При необходимости кэшируйте результаты или используйте transients API.
Совместимость с визуальными редакторами
Если вы используете Gutenberg или классический редактор, убедитесь, что ваш шорткод корректно отображается и не ломает верстку. Для Gutenberg можно создавать блоки, которые реализуют код шорткода.
Рекомендуемые плагины для работы с шорткодами
Если вы не хотите писать код вручную, можно использовать готовые плагины для управления шорткодами:
- Shortcodes Ultimate — мощный набор готовых шорткодов с возможностью создания пользовательских.
- WP Shortcode — простой плагин с базовым набором шорткодов для форматирования контента.
- Custom Content Shortcode — облегчает создание собственных шорткодов без глубоких знаний PHP.
Однако для уникальных задач собственный код всегда лучше, так как вы полностью контролируете функциональность и безопасность.
Заключение
Создание собственного шорткода — это несложно и открывает широкие возможности для кастомизации сайта на WordPress. На примере journalx.ru вы можете легко добавить интерактивные списки, выводить последние записи, создавать красивые блоки и многое другое. Главное — писать чистый, безопасный и оптимизированный код.