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' => '<nav class="woocommerce-breadcrumb" itemprop="breadcrumb">', 'wrap_after' => '</nav>', '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
Děkuji, moc mi to pomohlo.
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!