Jak upravit breadcrumbs ve Woocommerce

Pro zobrazení drobečkové navigace, má Woocommerce vlastní funkci, kterou například ve výpisu produktů, zavěšuje do akce woocommerce_before_main_content. Takže pokud potřebujete breadcrumbs upravovat, zde najdete několik funkcí, které vám to usnadní. Všechny funkce vkládejte do functions.php, nebo do odpovídajícího souboru, pokud voláte hook z pluginu. Změna textu…

Pro zobrazení drobečkové navigace, má Woocommerce vlastní funkci, kterou například ve výpisu produktů, zavěšuje do akce woocommerce_before_main_content. Takže pokud potřebujete breadcrumbs upravovat, zde najdete několik funkcí, které vám to usnadní.

Všechny funkce vkládejte do functions.php, nebo do odpovídajícího souboru, pokud voláte hook z pluginu.

Změna textu „Home“ na začátku navigace na „Úvod“

add_filter( 'woocommerce_breadcrumb_defaults', 'jk_change_breadcrumb_home_text' );
function jk_change_breadcrumb_home_text( $defaults ) {
	$defaults['home'] = 'Úvod';
	return $defaults;
}

Změna separatoru v breadcrumbs

add_filter( 'woocommerce_breadcrumb_defaults', 'jk_change_breadcrumb_delimiter' );
function jk_change_breadcrumb_delimiter( $defaults ) {
	$defaults['delimiter'] = ' > ';
	return $defaults;
}

Samozřejmě záleží na vás, jaký znak použijete.

Změna odkazu „Home“ na linou url

add_filter( 'woocommerce_breadcrumb_home_url', 'woo_custom_breadrumb_home_url' );
function woo_custom_breadrumb_home_url() {
    return 'http://example.cz';
}

Odstranění drobečkové navigace

add_action( 'init', 'jk_remove_wc_breadcrumbs' );
function jk_remove_wc_breadcrumbs() {
    remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0 );
}

Celková změna drobečkové navigace

Pokud potřebujete upravit drobečkovou navigaci poněkud více, nemá smysl používat jednotlivé funkce, ale upravit rovnou celé pole s nastavením:

add_filter( 'woocommerce_breadcrumb_defaults', 'jk_woocommerce_breadcrumbs' );
function jk_woocommerce_breadcrumbs() {
    return array(
            'delimiter'   => ' / ',
            'wrap_before' => '',
            'before'      => '',
            'after'       => '',
            'home'        => _x( 'Home', 'breadcrumb', 'woocommerce' ),
        );
}

Položky before a after jsem zatím nezkoušel, ale mělo by jít o kód, který se zobrazí před a za textem každého odkazu.

Všechny funkce jsou z oficiálních stránek Woothemes.com

2 komentáře: „Jak upravit breadcrumbs ve Woocommerce“

  1. Luky avatar

    Děkuji, moc mi to pomohlo.

  2. Honza Kopřiva avatar
    Honza Kopřiva

    Já už nevím kudy kam…

    potřebuju, aby se breadcrumb zobrazoval nad produktem. Ale…

    Když vložím nad

    Tak se zobrazí něco jako „eShop/Stránka/eShop příslušenství…“

    Pokud to vložím

    Zobrazí se pod produktem správný breadcrumb typu „eShop/Kategorie/podkategorie/název produktu“

    Vyzkoušel jsem uplně všechno, vkládat funkci do functions a podobně, ale stále stejný problém…

    Proč se toto děje? Nejsem programátor a PHP rozumím taky pomálu… takže mi to nejde do hlavy… Prostě, jakmile je ten kód před obsahem produktu, tak to je špatný…

    Pro představu: http://www.potok.cz/eshop/prislusenstvi/boxy/bucket-works-utility-box/
    (pod logem je nadpis a pod ním je špatný BC + uplně doooole je ten, co se zobrazuje jak má… Ale potřebuji ho nahoru, pod nadpis, kde nefunguje korektně)

    Děkuji za nápady, už jsem z toho uplně vedle!