Что такое шорткоды и зачем они нужны?
Шорткоды в WordPress – это конструкции, позволяющие вставлять PHP-функции прямо в контент страниц и записей.
Они обозначаются квадратными скобками, например, [myShortcode].
Использование шорткодов особенно полезно для добавления фильтров на страницы,
таких как фильтры товаров в WooCommerce (woocommerce_product_filter) или фильтры для путешествий (wp_travel_trip_filters).
Преимущества: шорткоды упрощают добавление функциональности без редактирования кода темы,
обеспечивают масштабируемый дизайн и повторное использование функций.
Например, [Filter Everything] позволяет отображать виджеты фильтрации.
Шорткоды помогают с масштабируемым дизайном, потому что можно использовать их для добавления повторно используемых функций на страницы и записи.
Шорткод (шоткод, shortcode, короткий код) в WordPress – это конструкция в тексте, которая будет обработана и заменена на указанный код/текст.
Определение шорткодов в WordPress
Шорткоды в WordPress – это специальные теги, заключенные в квадратные скобки, например, [имя_шорткода]. Они служат своего рода «ярлыками» для выполнения определенных действий или вставки контента, определяемого PHP-функцией. Введенный в WordPress 2.5, Shortcode API предоставляет простой способ создания таких макросов для использования в записях и страницах.
Шорткоды обрабатываются WordPress при отображении страницы или записи. Когда WordPress обнаруживает шорткод, он заменяет его на результат выполнения связанной с ним функции. Это позволяет динамически генерировать контент и добавлять интерактивные элементы, такие как фильтры, на ваши страницы.
Шорткод – это конструкция в тексте, которая будет обработана и заменена на указанный код/текст. Они помогают с масштабируемым дизайном, потому что можно использовать их для добавления повторно используемых функций.
Преимущества использования шорткодов для добавления функциональности
Шорткоды значительно упрощают добавление сложных функций, таких как фильтры, на страницы WordPress без необходимости глубоких знаний PHP или редактирования файлов темы. Это особенно ценно для пользователей, не являющихся разработчиками.
Масштабируемость и повторное использование – ключевые преимущества. Один и тот же шорткод с фильтрами можно использовать на множестве страниц, обеспечивая единообразный опыт для пользователей и сокращая время на разработку. Например, шорткод для фильтрации товаров WooCommerce можно вставить на разные страницы магазина.
Гибкость и настройка: шорткоды часто поддерживают атрибуты, позволяющие настраивать их поведение и внешний вид. Функция shortcode_atts объединяет переданные атрибуты с атрибутами по умолчанию, обеспечивая гибкость. Это позволяет адаптировать фильтры под конкретные нужды.
Удобство управления контентом: шорткоды интегрируются в визуальный редактор WordPress, позволяя добавлять и редактировать фильтры так же легко, как и любой другой контент. Блок шорткода можно добавить на страницу, нажав кнопку «Добавить блок».
Шорткоды помогают с масштабируемым дизайном, потому что можно использовать их для добавления повторно используемых функций на страницы и записи.
Фильтрация шорткодов: основные концепции
Фильтрация шорткодов позволяет изменять их поведение и вывод. Используются фильтры shortcode_atts и do_shortcode_tag.
Эти фильтры позволяют модифицировать атрибуты и вывод шорткода.
Фильтр `shortcode_atts` для дефолтных атрибутов
Фильтр shortcode_atts позволяет изменять значения атрибутов шорткода по умолчанию перед их использованием. Он вызывается функцией shortcode_atts, но только если в ней указан третий параметр – массив дефолтных атрибутов.
Этот фильтр особенно полезен, когда необходимо добавить или изменить атрибуты шорткода, не изменяя сам код шорткода. Например, можно добавить новый атрибут, определяющий стиль отображения фильтра, или изменить значение существующего атрибута, чтобы изменить его поведение.
Как это работает: shortcode_atts объединяет атрибуты, переданные в шорткод, с атрибутами по умолчанию, указанными в третьем параметре. Если атрибут указан и в шорткоде, и в массиве по умолчанию, значение из шорткода имеет приоритет. Если атрибут отсутствует в шорткоде, используется значение по умолчанию.
Пример: Предположим, шорткод фильтрации товаров имеет атрибут color со значением по умолчанию «blue». С помощью фильтра shortcode_atts можно изменить значение по умолчанию на «red» для всех шорткодов этого типа.
Функция shortcode_atts объединяет переданные в шорткод атрибуты с атрибутами шорткода по умолчанию. Удаляет неподдерживаемые атрибуты.
Фильтр `do_shortcode_tag` для изменения вывода шорткода
Пример: Можно использовать этот фильтр, чтобы обернуть вывод шорткода фильтра в дополнительный div с определенным ID или классом, что упростит стилизацию фильтра с помощью CSS. Использование: add_filter( do_shortcode_tag, wp_kama_do_shortcode_tag_filter, 10, 4 );
Filters the output created by a shortcode callback. Searches content for shortcodes and filter shortcodes through their hooks.
Примеры использования фильтров шорткодов
Фильтры позволяют модифицировать атрибуты (shortcode_atts) и вывод (do_shortcode_tag) шорткодов.
Рассмотрим примеры изменения атрибутов и вывода шорткодов.
Модификация атрибутов шорткода
Модификация атрибутов шорткода с помощью фильтра shortcode_atts позволяет изменить поведение шорткода без изменения его кода. Это особенно полезно, когда необходимо добавить новые параметры или изменить значения существующих.
Пример: Предположим, у вас есть шорткод для отображения слайдера изображений, который принимает атрибут width, определяющий ширину слайдера. Вы хотите добавить новый атрибут height, который будет определять высоту слайдера. С помощью фильтра shortcode_atts можно добавить этот атрибут и установить для него значение по умолчанию.
Код:
add_filter( 'shortcode_atts_my_slider', 'my_slider_atts' );
function my_slider_atts( $atts ) {
$atts['height'] = isset( $atts['height'] ) ? $atts['height'] : '300px';
return $atts;
}
В этом примере функция my_slider_atts добавляет атрибут height к массиву атрибутов шорткода my_slider. Если атрибут height не указан в шорткоде, ему будет присвоено значение по умолчанию «300px».
Функция shortcode_atts объединяет переданные в шорткод атрибуты с атрибутами шорткода по умолчанию. Удаляет неподдерживаемые атрибуты.
Изменение вывода шорткода с помощью `do_shortcode_tag`
Код:
add_filter( 'do_shortcode_tag', 'my_shortcode_tag_filter' );
function my_shortcode_tag_filter( $output, $tag, $atts, $content ) {
if ( $tag == 'my_product_list' ) {
$output = str_replace( '', 'Купить ', $output );
}
return $output;
}
Filters the output created by a shortcode callback. Searches content for shortcodes and filter shortcodes through their hooks.
Добавление шорткодов на страницы
Шорткоды можно добавлять через блок шорткода в редакторе или напрямую, набрав /шорткод и нажав Enter.
Это позволяет легко интегрировать фильтры на ваши страницы.
