Как изменить содержимое хлебных крошек WooCommerce?

22 мар. 2016 г., 12:28:51
Просмотры: 21.3K
Голосов: 4

Я хочу настроить хлебные крошки непосредственно через PHP. Некоторые страницы генерируются динамически и не существуют в базе данных, поэтому мне нужно автоматически добавлять их в хлебные крошки с помощью PHP-скрипта.

Мне не нужно менять стандартные вещи, такие как URL главной страницы, разделители и т.д... но мне действительно нужно вручную добавлять некоторые страницы в хлебные крошки. Я пытался использовать некоторые фильтры и хуки.

Я прочитал документацию, но там объясняется только как изменить стандартные параметры.

Как я могу изменить фактическое содержимое хлебных крошек?

Я попробовал следующее:

add_filter( 'woocommerce_breadcrumb', 'change_breadcrumb' );
function change_breadcrumb( $defaults ) {
    // Изменить текст домашней страницы с 'Home' на 'Квартира'
    //что-то сделать
    return $defaults;
}

Но //что-то сделать никогда не выполняется. Как будто этот фильтр никогда не вызывается

0
Все ответы на вопрос 1
0

Это связано с тем, что ваш фильтр woocommerce_breadcrumb даже не существует.

Этот фильтр работает и извлекает все элементы, которые в данный момент находятся в хлебных крошках (в виде массива):

add_filter( 'woocommerce_get_breadcrumb', 'change_breadcrumb' );
function change_breadcrumb( $crumbs ) {
    var_dump( $crumbs );

    return $crumbs;
}

А этот фильтр извлекает основной термин (в виде объекта).

add_filter( 'woocommerce_breadcrumb_main_term', 'change_breadcrumb' );
function change_breadcrumb( $main_term ) {
    var_dump( $main_term );

    return $main_term;
}

'Основной термин' — это просто первый элемент, возвращаемый этой функцией (ссылка):

$terms = wc_get_product_terms( $post->ID, 'product_cat', array( 'orderby' => 'parent', 'order' => 'DESC' ) )

Смотрите Справочник по хукам действий и фильтров от woothemes для всех хуков и фильтров.

16 мая 2016 г. 15:17:46