Widget Logic bővítmény

[Ezt a cikket 3 perc elolvasni.]

Hogyan tudok oldalak függvényében kikapcsolni bizonyos widgeteket? Hogyan tudok más és más oldalak esetén különböző widgeteket elhelyezni ugyanabba pozícióba? Mi van akkor, ha egy widgetet, csak a főoldalon szeretnék megjeleníteni, másutt viszont nem? Sokszor tették már fel nekem ezeket a kérdéseket és én magam is rengetegszer kerültem olyan helyzetbe, amikor bele kellett nyúlnom abba, hogy melyik widget mikor és hol jelenjen meg. A megoldás természetesen most is nagyon egyszerű, mégsem mindenkinek nyilvánvaló. Pár perces folyamat az egész és nekünk csak a Widget Logic bővítményre van szükségünk.

Na de mi is ez a Widget Logic és hogyan is működik?

A plugin telepítése után egy új beviteli mező jelenik meg minden egyes hozzáadott widgetünk alján a “Widget Logic” felirattal. Ide írhatjuk a WordPress által is támogatott kondicionális tageket, amelyek meg fogják határozni az adott widget viselkedését. Amilyen bonyolultan hangzik, annyira egyszerű a dolog, arra van csak szükség, hogy megkeressük, hogy az aktuális helyzetünkre melyik tag is vonatkozik.

widget_logic

Ha azt szeretnénk, hogy egy hozzáadott widget csak a főoldalon jelenjen meg akkor ennyit kell megadnunk: is_home()
Amennyiben a hozzáadás után nem történik változás cseréljük ki a következőre: is_front_page()
Attól függően működik egyik vagy másik, hogy blogbejegyzések vagy egy statikus oldal a kezdőlapunk.

Ha egy konkrét oldalon szeretnénk csak megjeleníteni a widgetet: is_page( ‘kapcsolat’ )
Természetesen cseréljük ki a “kapcsolat” részt a saját oldalunk hivatkozására. Mint ahogy a legtöbb, úgy a fenti kondíció is elfogadja az ID-t is (például: is_page( ’14’ ))

Több oldalon így tudjuk megjeleníteni a widgetet: is_page(array(12,16))
Vesszővel elválasztva az oldalak azonosítóit (ID) soroljuk fel.

Widget megjelenítése egy bejegyzés esetében: is_single(‘Hello-Vilag’)

A kategória oldalakon történő megjelenítést így állítjuk be: is_category( ‘alapismeretek’ )

Ha a cél az, hogy egy widget NE jelenjen meg egy bizonyos oldalon, akkor azt így érhetjük el: !is_page( ‘kapcsolat’ )
Ugyanígy alkalmazhatjuk a felkiáltójelet a többi szabály esetén is, ha szeretnénk megfordítani a dolgot.

Kombinálni a következőképpen tudunk: is_category( ‘alapismeretek’ ) || is_page( ‘kapcsolat’ )
Ebben az esetben a widget megjelenik az alapismeretek kategória és a kapcsolat oldal esetében is.

Természetesen a felsorolás még nem ér véget, temérdek további kondíció is van amik szerint megszabhatjuk a widgetek megjelenítését, ezeket érthetően és logikusan sorolja fel a fentebb linkelt WordPress Codex oldal.

UPDATE: Van egy némileg felhasználóbarátabb, könnyebben kezelhető (de kicsivel butább) alternatíva is ugyanerre a feladatra, ez pedig a “Display Widgets” névre hallgató bővítmény. Ha csak az a cél, hogy egyes oldalakon megjelenítsünk/elrejtsünk egyes widgeteket, akkor érdemes tenni ezzel is egy próbát.

Ha tetszik, mutasd meg másoknak is: