Настройка хлебных крошек WooCommerce

Это инструкция для разработчиков. Если вы не уверены в своих навыках работы с кодом или шаблонами, лучше обратиться к специалисту.

Добавьте код в файл functions.php вашей дочерней темы или используйте плагин для добавления пользовательских функций, например Code Snippets.

Не добавляйте код напрямую в functions.php родительской темы — при обновлении темы изменения будут удалены.

Изменение текста «Главная»

Используйте этот код, если хотите изменить текст ссылки на главную страницу.

/**
 * Переименование "Главная" в хлебных крошках
 */
add_filter( 'woocommerce_breadcrumb_defaults', 'wcc_change_breadcrumb_home_text' );
function wcc_change_breadcrumb_home_text( $defaults ) {
    // Меняем текст "Главная" на "Квартира"
    $defaults['home'] = 'Квартира';
    return $defaults;
}

Для темы Storefront нужно увеличить приоритет выполнения:

add_filter( 'woocommerce_breadcrumb_defaults', 'wcc_change_breadcrumb_home_text', 20 );

Изменение разделителя хлебных крошек

Используйте этот код, чтобы изменить разделитель между элементами.

/**
 * Изменение разделителя хлебных крошек
 */
add_filter( 'woocommerce_breadcrumb_defaults', 'wcc_change_breadcrumb_delimiter' );
function wcc_change_breadcrumb_delimiter( $defaults ) {
    // Меняем разделитель с '/' на '>'
    $defaults['delimiter'] = ' > ';
    return $defaults;
}

Для темы Storefront нужно увеличить приоритет выполнения:

add_filter( 'woocommerce_breadcrumb_defaults', 'wcc_change_breadcrumb_delimiter', 20 );

Изменение всех параметров

Используйте этот вариант, если нужно изменить сразу несколько параметров хлебных крошек.

/**
 * Изменение нескольких параметров хлебных крошек
 */
add_filter( 'woocommerce_breadcrumb_defaults', 'jk_woocommerce_breadcrumbs' );
function jk_woocommerce_breadcrumbs() {
    return array(
        'delimiter'   => ' / ',
        'wrap_before' => '<nav class="woocommerce-breadcrumb" itemprop="breadcrumb">',
        'wrap_after'  => '</nav>',
        'before'      => '',
        'after'       => '',
        'home'        => _x( 'Главная', 'breadcrumb', 'woocommerce' ),
    );
}

Для темы Storefront нужно увеличить приоритет выполнения:

add_filter( 'woocommerce_breadcrumb_defaults', 'jk_woocommerce_breadcrumbs', 20 );

Изменение ссылки «Главная»

/**
 * Заменить URL ссылки "Главная" в хлебных крошках
 */
add_filter( 'woocommerce_breadcrumb_home_url', 'woo_custom_breadrumb_home_url' );
function woo_custom_breadrumb_home_url() {
    return 'http://woocommerce.com';
}

Для темы Storefront необходимо повысить приоритет выполнения:

add_filter( 'woocommerce_breadcrumb_defaults', 'woo_custom_breadrumb_home_url', 20 );

Удаление хлебных крошек

Это можно использовать в большинстве тем:

/**
 * Удалить хлебные крошки
 */
add_action( 'init', 'woo_remove_wc_breadcrumbs' );
function woo_remove_wc_breadcrumbs() {
    remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0 );
}

Для темы Storefront используйте следующий код:

/**
 * Удалить хлебные крошки для темы Storefront
 */
add_action( 'init', 'wc_remove_storefront_breadcrumbs');

function wc_remove_storefront_breadcrumbs() {
  remove_action( 'storefront_before_content', 'woocommerce_breadcrumb', 10 );
}

Если вы предпочитаете скрыть хлебные крошки с помощью CSS, используйте:

.woocommerce-breadcrumb {
visibility:hidden;
}

Использование темы Woo

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

Чтобы удалить хлебные крошки в теме Woo, добавьте следующий код:

Обратите внимание: это удалит хлебные крошки на всем сайте, а не только на страницах WooCommerce.

/**
 * Удалить хлебные крошки в темах Woo
 */
add_action( 'init', 'woo_remove_woo_breadcrumbs' );
function woo_remove_woo_breadcrumbs() {
    remove_action( 'woo_main_before', 'woo_display_breadcrumbs', 10 );
}

Если вы хотите удалить хлебные крошки только на страницах WooCommerce при использовании темы Woo, используйте:

/**
 * Удалить хлебные крошки на определённых страницах
 */
add_action( 'init', 'wcc_remove_woo_wc_breadcrumbs' );
function wcc_remove_woo_wc_breadcrumbs() {
    if ( is_woocommerce() || is_cart() || is_checkout() ) {
        remove_action( 'woo_main_before', 'woo_display_breadcrumbs', 10 );
    }
}

Поделиться с друзьями
Документация WooCommerce