Woocommerce хлебные крошки

Опубликовано: 01.11.2017

видео woocommerce хлебные крошки

Хлебные крошки от Yoast

Хлебные крошки заданы функцией woocommerce_breadcrumb(), которая определена в файле \wp-content\plugins\woocommerce\includes\wc-template-functions.php

Шаблон хранится в файле \wp-content\plugins\woocommerce\templates\global\breadcrumb.php. Чтобы изменить его, необходимо скопировать этот файл в папку с Вашей темой


Хлебные крошки интернет-магазин Woocommerce

\wp-content\themes\ВАША_ТЕМА\woocommerce\global\breadcrumb.php

Саму функцию тоже можно переопределить, так как она обернута в

if ( ! function_exists( 'woocommerce_breadcrumb' ) ) { }. Свою функцию с именем woocommerce_breadcrumb() можно задать в файле functions.php Вашей темы.

Параметры можно передавать через массив $args

Теперь разберем саму функцию:

function woocommerce_breadcrumb( $args = array() ) { $args = wp_parse_args( $args, apply_filters( 'woocommerce_breadcrumb_defaults', array( 'delimiter' => ' / ', 'wrap_before' => '', 'before' => '', 'after' => '', 'home' => _x( 'Home', 'breadcrumb', 'woocommerce' ), ) ) ); $breadcrumbs = new WC_Breadcrumb(); if ( ! empty( $args['home'] ) ) { $breadcrumbs->add_crumb( $args['home'], apply_filters( 'woocommerce_breadcrumb_home_url', home_url() ) ); } $args['breadcrumb'] = $breadcrumbs->generate(); /** * @hooked WC_Structured_Data::generate_breadcrumblist_data() - 10 */ do_action( 'woocommerce_breadcrumb', $breadcrumbs, $args ); wc_get_template( 'global/breadcrumb.php', $args ); }

Разберем всё по порядку.

$args = wp_parse_args( $args, apply_filters( 'woocommerce_breadcrumb_defaults', array(

Здесь есть фильтр (apply_filters) и функция wp_parse_args().

wp_parse_args - сравнивает два массива. Первый, который мы передаем в качестве аргумента функции, сравнивается с массивом аргументов по-умолчанию. Если найдутся совпадения, то будут использоваться настройки переданные функцией, в противном случаче, по-умолчанию.

Фильтр apply_filters меняет значения массива по умолчанию. Если нужно изменить только их, но не нужно переопределять всю функцию. Достаточно только добавить новый фильтр.

Например, заменим разделитель в хлебных крошках. Для этого в файле function.php добавим строки: