Különböző sidebar a blog és pages oldalakon

Akadt egy kis problémám, hogy különbőző sidebart akartam (felépítésileg) a bejegyzéseknél és a más oldalakon. Körbenéztem itt, hogy segítséget kérjek, de végül megtaláltam a megoldást. Egy másik nagyon rendes kollégához hasonlóan (aki az oldallistából kiszedett egyes elemeket) én is le szeretném írni a megoldását a gondnak, hátha valakinek kell.











Eredetileg ugye a <?php get_sidebar(); ?> függvény hívja meg a sidebar.php-t. Ha ezen módosítani akarunk, akkor a sidebar.php-ből létrehozunk egy másolatot mondjuk pagesidebar.php névvel, módosítjuk rajta, amit kell, majd a page.php oldalon a <?php get_sidebar(); ?> függvényt módosítjuk az alábbira: <?php include ('pagesidebar.php'); ?>











És kicseréli :slight_smile:

a cím megfogalmazása szerintem nem helytálló, mert BLOG az egész.





te a POST és PAGE oldalakra gondolsz, nemde! :wink:





de az eljárásod helyes, én is így használom! :smiley:

Abszolúte igazad van, de úgy nézem már nem tudok rajta módosítani. Ami igazából összekavar, hogy egyszer magyarul látom, aztán angolul…

Eddig minden rendben is lenne…





Ha azonban egy olyan oldalra irányítom a postokat ahol már nincs sidebar (a fent megismert módszerrel eltávolítottam és ragyogóan működött is) az első bejegyzés publikálásának pillanatában mégis meghívja a sidebart a kis cseles. (tehát a használt oldalsablon nem tartalmazta) Erre vajon mi lehet az orvosság?


kucsera wrote:

Ha azonban egy olyan oldalra irányítom a postokat ahol már nincs sidebar





Na, az "irányitást" magyarázd el - vélhetően annak a hogyanjától függ a válasz. Normálisan WP-ben nincs ilyen, hogy postokat Page-re irányítasz, illetve... de hadd halljuk a részletes választ előbb.

Sziasztok!











Sok helyen utánanéztem, de végül a konkrét probléára nem találtam megoldást, bár szerintem jó helyen kapisgálok, csak egy végső löket kellene. :slight_smile:











sidebar.php-ben azt szeretném elérni, hogy ha a főoldalon vagyok jelenjen meg egy bizonyos táblázat, azonban ha nem a főoldalon vagyok, akkor ugyanannak helyén egy mésik táblázat.











eddig eljutottam:



Code:





...







Ekkor a fóoldalon megjelenik a táblázat, de minden más oldalon meg semmi nem jelenik meg. Hogy teszem be, hogy minden más esetben meg a másik table jöjjön be?





thx.

Code:



...




masik tabla ide






és nem köll pontosvessző az utolsó sorba!





Tovább variálva, ha 3 lehetőséggel dolgozol:





Code:



...




masodik tabla ide, ha moshu



minden egyéb esetben ide, amit akarsz


moshu, köszönöm a válaszod!











mi a helyzet akkor, ha az alábbiakat szeretném:











bizonyos page-ek megjelenítésénél azt szeretném, hogy az ahhoz a page-hez tartozó subpage -ek listája jelenjen meg!





De persze ez csak akkor jelenjen meg, ha van subpage az adott odalhoz, és persze ez minden page esetében más…











próbáltam ezzel: list_subpages() . valahol jó helyen turkálok szerintem de nem sikerül összehozni.











köszönöm, sokat segítesz!

ja és még egy ok ami nehezíti az életem: olyan template-tel kell ezt megoldani, amiben nincs page.php. Ergo, még page sablonokat sem tudok létrehozni, amivel esetleg meg tudnám oldani a dolgot…

  1. Nincs olyan template tag, hogy “list_subpages”.





    A Codex a legjobb barátod…





    http://codex.wordpress.org/Template_Tags/wp_list_pages#List_Sub-Pages_.28Wordpress_2.0.1_or_newer.29










  2. Ha nincs, akkor csinálj! Elmented a sablon index.php fájlját mint page.php, és kigyomlálod belőle, ami nem kell (pl. comment link).





    2a. Az a tény, hogy nincs page.php egy sablonban, semmi összefüggésben nincs azzal a ténnyel, hogy tudsz-e vagy nem létrehozni Page sablonokat!





    http://codex.wordpress.org/Pages#Page_Templates

ok, köszönöm!











Másoknak mondom, hogy kiváló plugint találtam egyébként a probléma megoldására:











List Subpages Plugin for WordPress





http://www.dagondesign.com/articles/list-subpages-plugin-for-wordpress/











moshu, azért köszönöm a választ!


moshu wrote:



Code:



...




masik tabla ide






és nem köll pontosvessző az utolsó sorba!





Tovább variálva, ha 3 lehetőséggel dolgozol:





Code:



...




masodik tabla ide, ha moshu



minden egyéb esetben ide, amit akarsz









követve moshu utasítasitásait csináltam a sidebarba egy ilyet:





Code:



..a..




..b..




..c..









Ugyanakkor ha ez a fenti kód benne van a sidebarba akkor az alábbi hibaüzenetet kapom: (ha nincs benne a sidebarban akkor minden működik - tehát tuti hogy ebben van a hiba)





Parse error: parse error, unexpected T_ENDIF in /var/www/vhosts/www.aaaaaaaaaaa.hu/new/wp-content/themes/new_theme/sidebar.php on line 47





A 47.sor tartalma pedig ez:











Hm? Ötlet? Köszönöm! Hátha sikerül összehozni.





A

Nem is olyan “tuti”, hogy ebben van a hiba… hiszen az a sor, amit a hibaizenet kiír, nincs is a fenti kódban!





Az én IF-em lezárása:























míg a te 47-ik sorod aszongyahogy:























Szerintem, ez két különböző dolog… Az lehet a göcs, hogy van neked egy másik feltételes kódod, aminek a közepébe beoperálod a magadét, és akkor az a másik siránkozik.

igazad van. Huhetetlenb hogy látatlanban így vágod a dolgokat.











Van egy másik if amibe beletettem a sajátomát. ez pedig a widget-es cucc.









Code:

<?php if ( !function_exists('dynamic_sidebar')

|| !dynamic_sidebar() ) : ?>



... a sidebar tartalma, közte a fenti IF...








Mivel a widgeteket úgy sem használom próbáltam kikapni itt a fenti kód nyitó meg záró php-jét, azaz egy // jellel inaktiváltam, de akkor se műkszik.

moshu, pls! ötlet? próbálgatom a variációkat, de valahogy nem akar összejönni…

Az a kód, amit te írtál, nem jó… még akkor sem, ha (állítólag) az én “utasításaimat” követted. Én mindig mondom, hogy csupán elméletben tudom, mit kell csináljon a kód, de nem vagyok egy igazi kóder :frowning:





Ennek ellenére én olyat, mint amit te idéztél, soha nem írtam, mert annyit tudok, hogy ha kinyitol egy feltételes módot





{





akkor azt be is kell csukni





}





és ha több feltételt raksz ugyanabba a kódba, akkor közöttük a “máskülönben ha”





} elseif {





kell álljon: bezárva az előző feltételt, és megnyitva a következőt.











Én tehát így írnám:



Code:



..a..




..b..




..c..




necsinájsemmit






Disclaimer. A fenti kód nem garantált, hogy működni fog, de ez az elv ;)

Köszi moshu!











Annyiban működik a kód, hogy hibaüzenetet már nem ír ki, és rendesen megjelnik a sidebar. Azonban a kód lényege ugye az lenne, hogy ha a 3, 6, 11… stb ID-jű oldalakon vagyok akkor a sidebarba “a” látszódjon, ha 4, 19, 14, stb akkor “b”, stb. Viszont nem látszódik semmi. Soha semmi. Az a rész ahol ezeknek kellene lenni, üres.











Pedig az elv tényleg ez… Valaki, ötlet? Úgy megköszönném… :slight_smile:

Hm… kicsit pontosítom a fenti kérdést. A kód tökéletes. Kipróbáltam ez helyett:























ezt írni:























És így működik.











Ergo az a hiba, higy egy kódba nem lehet több ID-t beleírni… De akkor hogyan lehet ezt megoldani?













??

hm igen. ez lehetséges, csak túl hosszú lenne a kód. Ki is próbálom, hátha et így működik.











Azonban hátha akkor tud valaki valami jobb megoldást mondani rá, ha elmondom, hogy a ‘3’ egy page és az összes többi az ő suppage-e. Ergo ha azt lehetne valahogy megmondani, hgy amig a 3-as ID-jű szülőpage-en van, addig a legyen a sidebarba… és így tovább…











ötlet?