Új widget terület létrehozása

[Ezt a cikket 3 perc elolvasni.]

A legegyszerűbb sablon is rendelkezik beépített widget területekkel, a leggyakrabban a bal/jobb oldalsáv (sidebar) és a lábléc (footer) az a felület, ahová widgeteket helyezhetünk el, azonban felmerülhet olyan igény is, hogy a sablonnal érkező alapértelmezett pozíciókon kívül egyéni helyeket is definiáljunk. A lenti módszer segítségével könnyedén hozhatunk létre új widget pozíciókat a sablon tetszőleges helyén ezután pedig a vezérlőpulton keresztül néhány kattintással adhatunk ezekhez a területekhez új widgeteket.

Az első lépés az új pozíció definiálása, a folyamat végén már ott is lesz a “Megjelenés/Widgetek” szekció alatt az egyénileg definiált widget szekciónk, ahová ugyanúgy pakolászhatunk widgeteket, ahogyan az alapértelmezettek esetében.

Az aktív sablonunk functions.php fájljának a végére kell beillesztenünk a következő kódsort:

function arphabet_widgets_init() {

	register_sidebar( array(
		'name'          => 'Egyeni terulet neve',
		'id'            => 'egyeni_terulet',
		'before_widget' => '<div>',
		'after_widget'  => '</div>',
		'before_title'  => '<h2>',
		'after_title'   => '</h2>',
	) );

}
add_action( 'widgets_init', 'arphabet_widgets_init' );

A fentieket a következőképpen paraméterezzük: A “name” után értelemszerűen a widget pozíciónk neve kerüljön, ez fog megjelenni a widgetek menüben is. Mivel ezt csak mi látjuk, ezért olyan nevet adjunk, ami alapján könnyedén tudjuk majd azonosítani. Az “id” lesz a widget terület azonosítója, itt ne használjunk sem ékezetet, sem szóközt, erre az ID-re lesz majd szükségünk ahhoz, hogy a kívánt helyen megjelenítsük majd az új pozíció widgetjeit. A “before_widget” és az “after_widget’, valamint a “before_title” és az “after_title” opcionális, ezek elhagyhatók, azonban ha szükség van rájuk, akkor segítségükkel megadhatjuk, hogy a widget és a widget címe előtt valamint után milyen HTML tagek szerepeljenek. Tehát használatukkal keretbe foglalhatjuk a widget területünket, ez főként akkor hasznos, ha szeretnénk neki egyedi CSS osztályt vagy azonosítót adni a kinézetének testreszabáshoz.

Ha a fentiekkel készen vagyunk, akkor ellenőrizzük, hogy sikerrel jártunk-e, lépjünk be a “Megjelenés/Widgetek” panelbe és ha látjuk az egyéni névvel ellátott widget területünket, akkor jöhet a következő lépés. Egyelőre hiába is pakolnánk bele tartalmakat hiszen nem adtuk meg, hogy hol is szeretnénk, hogy ezek megjelenjenek. Ez következik most.

A lenti kódsort kell beillesztetnünk a sablonunk megfelelő PHP fájlába a widget terület tartalmának megjelenítéséhez:

<?php if ( is_active_sidebar( 'egyeni_terulet' ) ) : ?>
		<?php dynamic_sidebar( 'egyeni_terulet' ); ?>
<?php endif; ?>

A kód figyeli, hogy a widget terület aktív-e (azaz jelenleg szerepel-e benne widget), ha igen, akkor pedig megjeleníti a tartalmát. Fontos, hogy a kódban szereplő “egyeni_terulet” rész megegyezzen a functions.php fájlba illesztett kódrészletben szereplő ID-vel.

Ezzel a módszerrel tetszőleges számú új widget területet hozhatunk létre bárhol a sablonunkban.

Ha tetszik, mutasd meg másoknak is: