Úvodní stránka › Fórum podpory WordPressu › Problémy s WordPressem › v URL příspěvků se nezobrazí název podkategorie
Štítky: produkty, Rubriky, Trvalé odkazy, url
Zvolené téma obsahuje celkem 8 odpovědí. Do diskuze (3 účastníci) se naposledy zapojil uživatel admin a poslední změna je stará 8 let, 10 měsíců.
-
AutorPříspěvky
-
12. prosince 2015 (19:47) #25768
Dobrý den
chtěl bych poprosit o radu někoho, kdo se dobře vyzná v prostředí WordPress.
Řeším tento problém:
Mám připravenou stránku: Produkty a jako potomka mám stránku Hračky
Produkty -> Hračky
V příspěvcích jsem si založil kategorie: Produkty a potomka Hračky.
Každému novému příspěvku zakřížkuji kategorie Produkty, Hračky abych potom v šabloně stránek: Produkty, Hračky zobrazoval jednotlivé posty.
Tohle všechno funguje v pořádku.
Jenomže jsem narazil na dva problémy:
1. V URL příspěvku se mi zobrazuje pouze:
/produkty/nazev_hracky
, kategorie hračky se vůbec do URL nedostane2. Nedojde k zvýraznění aktivní položky v navigaci Produkty ani Hračky, pokud jste v detailu příspěvku.
Pokud byste někdo věděl v čem by mohl být problém budu moc rád za pomoc. Případně pokud byste mi dali tip na někoho, kdo by tento problém mohl vyřešit budu rovněž moc rád. Klidně pište do SZ.
Předem všem moc díky za přínosné reakce.
12. prosince 2015 (20:48) #25769Snad to někomu pomůže, ale to proč nedocházelo k zobrazení podkategorií bylo z toho důvodu, že podkategorie měly vyšší ID než rodičovská kategorie.
12. prosince 2015 (20:53) #257701. Kategorie se do permalinku (URL) mohou přidat pomocí tagu
%category%
, což předpokládám máte… Zde máte popis toho, co se zřejmě děje na vašem webu děje. Doslova je tam, že v adrese může být použita jen jedna rubrika (kategorie) a vždy je to ta první v abecedě (v případě podrubrik v uzavřené skupině)2. Toto jsem kdysi taky řešil, jde o to, že každý odkaz v menu se označuje třídou
.current-menu-item
pouze v případě, že jste na dané adrese (tedy archiv – výpis produktů / hráček…). Pokud to chcete jinak, můžete si napsat vlastní filtr, aby tuto třídu přidával pokaždé, když se v URL objeví například “hracky”. Pokud chvíli vydržíte, najdu příklad :)12. prosince 2015 (20:57) #25771To by bylo perfektní. Jak jsem psal před vámi, povedlo se mi vyřešit tu hierarchii kategorií v URL. Bylo to tím, že rodičovská kategorie měla vyšší ID než potomek.
Funguje tedy již:
www.adresawebu.cz/produkty/hracky/nazev_hracky/
Ted právě řeším jak udělat to, že pokud jste v detailu příspěvku =
nazev_hracky
tak aby se zvýraznila/přidala třída např:.current-menu-item
všem položkám v navigaci do kterých příspěvěk spadá – produkty, hrackyVěděl byste prosím jak na to?
12. prosince 2015 (21:01) #25772function rbow_menuitems_classes($nav_items, $args) { if ($args->theme_location === 'rbow_topbar_menu') { $count = 0; for ($i = 1; $i <= count($nav_items); $i++) { $item = $nav_items[$i]; if (strpos( $item->url, rb_oftype() ) > -1) $item->classes[] = 'current-menu-item'; $item->classes[] = 'item-' . $i; if (isset($item->post_title)) $count++; } } return $nav_items; }
funkce
rb_oftype()
vrací název typu příspěvku (custom post type) a ten potom vyhledá v adrese. Pokud se tam nachází, přidá se k položcecurrent-menu-item
.Dále se k položkám menu přidají třídy číslované od 1 – pro potřeby CSS stylů :)
No a nakonec se to musí spustit; :)
add_filter('wp_nav_menu_objects', 'rbow_menuitems_classes', 11, 2);
12. prosince 2015 (21:04) #25773rbow_topbar_menu
je potřeba upravit např. podle názvu ID hlavní navigace v hlavičce? Nebo to tak může zůstat?12. prosince 2015 (21:11) #25774rbow_topbar_menu
je název menu (tedy parametrtheme_location
ve wp_nav_menu), te to kvůli identifikaci a propojení registrovaného menu s místem, kde se má načíst____
Edit: asi je to to ID menu v hlavičce :)
A ještě upozorním, že asi potřebujete upravit funkci pro kategorii, takže toto asi nebude fungovat úplně, jak chcete.
12. prosince 2015 (21:18) #25775Hmmm, zkusil jsem to doplnit, ale zatím to žádné třídy nepřidává :-(. Já už bych si to pak upravil, jen dostat k té položkce nějaký identifikátor.
Nekoukl byste na to prosím přímo na webu? Asi budete vědět lépe jak já. Vše bych vám rád zaplatil, pokud byste měl zájem – ondonki@gmail.com
13. prosince 2015 (21:26) #25787@kuzmic11: Tak jsem to celé pročetl a jsem poněkud zmaten :-) Myslím, že to je celé špatně navržené a z toho vyplývají oba zmiňované problémy (jak URL konflikty, tak neaktivní položky menu).
1) Nerozumím vůbec logice stránek a příspěvků:
– Pokud máte stránky “Produkty” a “Hračky”, tak proč ještě vytvářet stejnojmenné rubriky (případně naopak)? Bohatě přece stačí samotné rubriky? Nehledě na to, že si vytváříte vzhledem k použité struktuře trvalých odkazů potenciální konflikty, např. adresa produkty/hracky bude zobrazovat stránku “Hračky”, ale zcela tím přijdete o možnost výpisu rubriky “Hračky” (stránka má přednost).
– Pokud nejde o klasické příspěvky (blogposty), tak bych doporučil raději definovat vlastní typ obsahu (Custom Post Type).
2) Problém s URL
Vytvořil jsem rubriku “Produkty”, která dostala ID = 84.
Následně jsem vytvořil podřazenou rubriku “Hračky”, která dostala následující (tedy vyšší) ID = 85.
Struktura trvalých odkazů je nastavená takto:/%category%/%postname%/
Vytvořil jsem testovací příspěvek a zařadil ho do podřazené rubriky “Hračky”, čímž automaticky patří i do nadřazené rubriky “Produkty” a není třeba ji tedy zaškrtávat.
URL příspěvku je správně zobrazena takto:/produkty/hracky/nazev/
V čem je tam tedy konkrétně problém?Pokud zaškrtáváte u příspěvku obě rubriky, tedy “Produkty” i “Hračky”, tak je sice relevantní odkaz, který správně uvedl @sjiamnocna, ale bohužel to tam mají špatně a není to řazené podle abecedy, ale naopak podle ID (nejstarší rubriky s nejnižším ID mají přednost). Tím se nám to sice trochu vysvětluje, ale hlavně je to celé NESMYSL. Proč to zaškrtávat u obou rubrik, když je jasné, že musí příspěvek patřit i do nadřazené rubriky a stačí zaškrtnout “Hračky”? Není třeba jít proti logice fungování WordPressu, ale naopak se ji pokusit maximálně využít…
K menu se ještě dostaneme, ale nejdříve si musíme ujasnit výše uvedené, aby se to celé ještě více nezkomplikovalo…
Duplicitní dotaz zde.
-
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.