WordPress kívülről

Custom sidebar per page

Vagyis a célom ezzel a bejegyzéssel megmutatni nektek, hogy hogyan tudunk minden egyes oldalunkhoz más és más sidebart társítani. Felvázolom miről is van szó röviden.
Adott a wordpress weblapunk és van, tegyük fel, három oldalunk (page). Legyen az oldalak neve csak így szimplán oldal1, oldal2, oldal3. Az oldal1-en a sidebarban csak az archívumot, az oldal2-ön csak a cimkéket, az oldal3-on pedig szeretnénk meghagyni, úgy ahogyan a főoldalon van. Ugyebár alapesetben mindenütt ugyanaz jelenik meg. Mit tegyünk? Gondolkozzunk Béláim. (:
Első lépésben fogjuk a jelenlegi sidebar.php fájlunkat és csináljunk belőle két másolatot. Az egyiknek legyen, a neve sidebar2.php a másiknak pedig sidebar3.php. Végezzük el a módosításokat rajta, így például ahogy fentebbi példában van, a sidebar2.php-ben ne legyen más, csak ami címkékhez kell és így tovább. Ha ezekkel megvagyunk, töltsük fel sablonunk könyvtárába az új fájlokat. Tehát most a sablonunk könyvtárába 3 sidebar található, nevezetesen sidebar.php, sidebar2.php és sidebar3.php.
Most pedig töltsük le a page.php nevű fájlunkat és keressük meg a

<?php get_sidebar(); ?>

részt. Ennek a helyére pedig illesszük be az alábbi kódot:

<?php
if ( is_page('2')) {
include(TEMPLATEPATH . '/sidebar2.php');
}
elseif ( is_page('3')) {
include(TEMPLATEPATH . '/sidebar3.php');
} else {
include(TEMPLATEPATH . '/sidebar.php');
}
?>

A számok helyére az oldalak ID-jét kell írni. Az „oldal3” ID-jét nem kell sehová írni, mert, ahogy a példában van, ott azt szeretnénk megjeleníteni ami a főoldalon van, annak elemi pedig a sidebar.php-ben találatóak. Mentsük el a fájlt, töltsük vissza, írjuk felül természetesen a régi page.php fájlt. Mostantól azoknál az oldalaknál amelyeknek ID-jét megadtuk a kódban, az include-olt sidebarok fognak megjelenni. Ha ezek után létrehozunk egy új oldalt akkor azon az alap sidebar.php tartalma fog megjelenni.
Remélem érthető voltam. Aki ilyen megoldást keres annak valószínűleg igen. Ha valami mégse világos, akkor kérdezzetek és megpróbálok válaszolni. Első próbálkozásra, ha nem vagyunk ilyen téren „tapasztaltak”, akkor próbálkozzunk localhoston.