Полезные шорткоды WordPress и WooCommerce

Шорткоды (shortcode) — это функции PHP, которые можно задействовать внутри содержимого поста, для выведется какого-то контента. Шорткод заключается в квадратные скобки.

Шорткод можно применить в любом месте Вашего сайта.

Создать шорткод в WordPress можно двумя способами:

  • Создать функцию и зарегистрировать для нее шорткод в файле functions.php;
  • Воспользоваться плагином для создания шорткодов (не рекомендую).

Бывает нужно вывести ту или иную информацию через шорткод, например, в хедере, футере или иной части сайта, которые невозможно редактировать как страницу, запись или виджет.

Для этого в WordPress используется специальная функция do_shortcode. Ее применение выглядит так:

<?php echo do_shortcode("[шорткод]"); ?>

В SEO часто нужно использовать динамическое изменение года, например указать что данные в статье актуальны для текущего года. Но изменять вручную значение это очень трудоемкий процесс, когда у вас десятки или сотни статей на сайте. Это шорткод позволяет решить эту проблему.

В файле functions.php, обычно в самом низу, дописываем код:

function show_current_year(){
	return date('Y');
}
add_shortcode('show_current_year', 'show_current_year');

Теперь, вставив в тексте (или заголовке) поста шорткод [show_current_year], мы получим значение текущего года.

В предыдущем примере выше показано как создавать «Одиночные» (self-closing) шорткоды: [name]. Но кроме них есть еще «Контентные» (enclosing) шорткоды: [name]Контент[/name]. Зарегистрированный шорткод всегда можно использовать как Одиночный или Контентный.

Для Enclosing шорткода функция-обработчик получит второй параметр содержащей контент. При регистрации шорткода желательно всегда указывать значение по умолчанию для второго параметра $content.

function my_shortcode( $atts, $content )

Создадим контекстный шоркода, который будет обрабатывать 1 атрибут и информацию заключенный межу тегами шрткода (то есть переменную $content)

add_shortcode('ulr_out', 'ulr_out');
 
function ulr_out( $atts, $content ) {
 
$atts = shortcode_atts( [
		'name' => 'Fb',
	], $atts );
 
$name = $atts["name"];
 
	return '<a href="'.$content.'">' . $name . '</a>';
}

Вызовем полученный шорткод

[ulr_out name="Хостинг в Украине"]https://dieg.info/tsod/ukraine/[/ulr_out]
  • [recent_products] — выводит последние добавленные товары. Пример:
[recent_products per_page="4" columns="4"]
  • [featured_products] — вывод рекомендуемых товаров.
  • [top_rated_products] — товары с наивысшим рейтингом
  • [product] — вывод какого-то одной конкретной карточки товара по её ID или sku (артикул).
[product id="13"]
  • [products] — вывода определённых товаров по их ID или артикулу. Вы можете указать через запятые ID или артикулы товаров, например
[products ids="13,27"] или [products skus="product1,product2"].
  • [product_attribute] — позволяет вывести все товары с определенным значением какой-либо атрибута. Этот шорткод обладает стандартными параметрами per_page, columns, category и operator, как у шорткода [recent_products]. Также у него имеется ещё два параметра: attribute — ярлык атрибута, и filter — значение этого атрибута, причем вы можете указывать несколько значений через запятую. В примере выводится все карточки товара с атрибутом tsod и атрибут имеет заданные значения (значения фильтров берется из столбца "Ярлык", который обычно содержит только латинские буквы в нижнем регистре, цифры и дефисы.)
[product_attribute per_page="4" columns="4" attribute="tsod" filter="ukraine,singapore"]