legrisebb cikkek és rovatok külön..

ahoj, ismét zavarnék két kérdéssel ha nem gond











az egyik: azt hogy tudom megoldani, hogy a legfrisebbek postok közül sidebarban a recently write-nál azokat a legfrissebeket ne rakja ki, amelyek be vannak állítva adminban a föoldalon megjelenő postoknál, csak az utána következőket, a régebbieket? vagy úgy is jó, ha számmal megmondhatom neki, hogy jelentesse meg a legfrissebbeket, minusz x darab legeslegfrissebbet…





szal hogy ami a főoldalon látszik, azt ne mutassa mellette a recently write, mert ugyis kint vannak a főoldalon…











a másik: a kategóriákat szeretném úgy megjelentetni, hogy kategórianév, alatta pedig kilistázva a legutóbbi a kategóriába tartozó x darab (5-10) bejegyzés…











a válaszokat előre is köszönöm…

nézd át a wordpress.org oldalon a wp queryket. azokkal játszva megoldod ezeket ha a függvényeket rendesen beparaméterezed. és nem is kell semmi plugin hozzá.

köszi… ezekkel még nem volt dolgom, és az angol tudásom se pöccröff, úgyhogy elleszek vele… :smiley: de ez jobb mint pluginolni…











jó helyen kapirgálok, hogy ezzel lehet megoldani olyanokat, hogy csinálok több sidebart és több page oldalt, és pl ki tudok hozni olyat, mint ez itt?











de most komolyan… a joomlások meg mások izélgetik a wp-t hogy ez csak blogmotor, erre ez a brian gardner csávó olyanokat hoz ki, hogy csorog a nyálam :slight_smile:

noss ez egy ügyesen megszerkesztett oldal, de egyáltalán nem nehéz megcsinálni, ha megvan hozzá a megfelelö programozási tudásod. ha így nem konyítassz a html php cuccokhoz akkor nem sok esélyed van.











a fenti úr több page template-et használ, és minden egyes template-en többfajta lekérdezést ilyen olyan page-ekröl vagy kategóriákból. plussz ahogy látom vmilyen hirlevél plugin is becsúszik.





ennyi az egész…











fuu én is próbálkoztam már ezzel azzal (mármint cms-ekkel) de a joomla és barátai egyáltalán nem jöttek be, föleg hogy a theme/template kód tele van táblákkal amit nagyon utálok. ezért fel is adtam!





jelenleg épp a typo3 nevü cms-sel próbálkozom, de az egy kicsit összetettebb mint egy wordpress. kell még egy kis idö hogy átlássam.

a wpvel (meg a webvilággal) bővebben úgy pár hónapja foglalkozom, úgyhogy éppen konyítok hozzá, de igyekszem, nos hát senki nem születik php ismeretekkel, no nem?











én is így gondoltam, hogy több page sablon, mindegyik a maga cms diveivel meg a saját sidebarjaival, meg a függvények, amikről fentebb beszéltünk, stb… most egynek nekiálltam magam örömére, mire megcsinálom érteni is fogok hozzá…











mielőtt nekiálltam volna ennek az egésznek, én is körbenéztem, de a wp volt szimpi, és most hogy már az “éppen konyítok” kategóriájú vagyok, annyit látok belőle, hogy továbbra is ez a szimpi. lehet rosszul látom, de úgy érzem itt nagyobb szabadságod van formázgatni, meg birizgálni a lapodat mint a másikaknál. wpből láttam már hajmeresztőket, joomlából meg a többiből kevesebbet. szal hajrá wp! :slight_smile:











a brian csávót meg azért csipem, mert nagyon bejön a stílus, a visszafogott színvilág, az egyszerű és átlátható felület, és a könnyed elegancia, amit a lapjai tükröznek. sztem nagyon jók.

Ha a query_posts template tag-et használod





http://codex.wordpress.org/Template_Tags/query_posts





akkor annak van egy olyan paraméterje, hogy “offset” (lap alján) - az épp azt csinálja, amit te keresgélsz: pl. offset=5 kihagyja a legfrisebb 5 posztot, és a 6-kal kezdi :slight_smile:

na várj… próbálok visszafogottan fogalmazni…





zseniális!!! :slight_smile:





micsoda keresgéléseskutakodásos időt takarítottál nekem meg :slight_smile:





pyrrus is ezeket mondta, te meg a konkrétat, szal örök hála fiúk… köszi

Dehogy zseni :slight_smile:





Csakhát eltöltöttem kb. 3 és fél évet az angol fórumban, irtam belé a Codex-be… és hát elefánt-memóriával vagyok megverve: minden marhaságra emléxem, csak arra nem hova tettem a szemüvegem öt perccel ezelőtt—

hadd maradjon a zseni, ui akkor három és fél év múlva engem zseniznek le, és joggal mondhatom:





“hát igen… ezzel kell együtt élnem… de nem látta valaki a szemüvegemet?” :smiley:

üdv moshu…





én széttúrtam az általad beírt query-s oldalt, utána meg a gyártott oldal templat-jét, és egy csomó dologgal okosodtam, csak azzal nem, ami kéne :smiley:





nekem van egy ilyen kódom:



Quote:

Recent Entries













    [/list]





aztán van egy sor az oldalon, amit belinkeltél:


Quote:

query_posts('showposts=5&offset=1');





hogy passzintom össze a kettőt? vagyis hogy lesz ebbő az, hogy jelentesse meg a legfrissebb írásokat, minusz 5 legfrisebb? :)


szal az a baj, hogy a logikáját nem értem a query-k használatának..


válaszodat előre is köszi

A kettőt sehogy nem fogod összepasszitani…











Ha query_posts - akkor a másik előregyártott elem nem működ. Passz.











Viszont a query_post-hoz köll egy mini-loop.





Na, várjál, mindjárt utánanézek egy példának.

Posts recent







    <?php


    // kerunk otot de ugorjon egyet


    query_posts('showposts=5&offset=1');


    ?>








    [*]<a href="">








    Ez azt kelle csinalja, amit kertel, persze a h3 Recent posts meg a "valami" class-t szabjad testre magadnak, illetve a style.css-ben matasd :)





    szerk. a fenti kod cimeket fog mutatni csupan es azok ralinkelnek a single post-ra

na én ezt most de nagyon kipróbálom, de hogy érezzem a ritmust :smiley:





ez a sor kimaradt:











és ez lett a “miniloop”? csak hogy értsem :smiley:

















[*]<a href="">

















köszi











ez naagyon hasííít :smiley: pöpecül müxik :smiley:





ezekről a query-kről nincs valami magyar cucc amit átolvasva vághatnám jobban? az angolom nehézkes sajna…











ui: nem akarlak terhelni, de hát mit tehetnék, mocskosul vágod :smiley: csak egy kérdés: azt meg lehet oldani, hogy ha a user rákattint egy cikkre, akkor ott az másik sidebart hív be, amin annak a kategóriának a legfrissebb x írását mutatja meg? a sidebar behívás megvan, tippre minden kategóriának saját sidebarja lesz, amibe mindegyiknél az adott kategória fentiféle stílusú kódja lesz bent, de van rá kód? illetve azt hogyan oldja meg, hogy adott postra kattitva melyik - a kategóriának megfelelő -sidebar jelenik meg? vagy ez már több index vagy single.php-t is feltételez? tényleg nem akarlak terhelni, igen-igen-nem-nem-is-is típusú válaszok tökéletesen megfelelnek :smiley:











hogy őszinte legyek kíváncsi vagyok, lehet-e wpből kornak megfelelő pöpec internetes újságnak való sablont csinálni…

Na, akkor sorban.




  1. Örvendek, hogy működik.





    Igen, mint mondám, a get_archives template tag NEM kell, mert az (mint bármelyik WP template tag egy a WP motorban definiált funkcióra alapszik, és nem azt csinálja, ami neked kell. Kiiktattuk, és megcsináltuk a magunk “funkciójat” egy másik template tagra alapozva:





    http://codex.wordpress.org/Template_Tags/query_posts










  2. Magyar. Ha te tudnád, hogy én milyen gondban vagyok, amig ezeket itt neked/nektek magyarul próbálom irni… :frowning: Ha itt nincs semmi a template tag nevű WP izékről magyarul, akkor nem tudom, hol lehet. Amúgy “általában” a neten nem lehet, mert ez is egy spéci WP dolog.










  3. Meg lehet csinálni, amit kérdeztél - már ha jól értem a tervet. De ha nem single.php van az egyedi postok megjelenitésére, akkor hol van megoldva a kategóriák szerinti sidebar behivás? na, itt akadtam el…










  4. Asziszem, ti a theme-t hivjátok sablonnak - sablonkészitéskor a határ a csillagos ég… meg a XHTML/CSS tudás. (no, persze, a template tag-ek alapos ismerete se nem árt)

na sorban én is. :slight_smile:




  1. már legalább ketten örülünk :smiley: egyébként oksi, asszem értem, a tapasztalat majd kínkeserves izzadások révén meglesz, de tom merre induljak el, ugyhogy köszi…










  2. akkor marad az ajánlott oldal böngészése, legalább izmosodom angolból :slight_smile:










  3. én sem tom, de ugye valahogy megoldja, hiszen amikor egy kategórirára kattintasz egy adott oldalon, akkor is kilistázza - bár akkor úgy, ahogy az írásokat a főlapon, és nem listázva - és ugyanezt csinálja minden postnál is (ahol ugye a post idejét,szerzőjét is jelzi), mégpedig ezzel a kóddal:











    <?php the_category(’, ')











    nem lehet hogy ezt kell megcsesztetni? csak még nem tom hogy mondom neki azt, hogy ha x kategóriás postra bök akkor az x kategóriás index.php jöjjön be, ami az x kategóriára vonatkozó sidebart hívja meg, amiben egy lentebb féleséges (vagy nem)





    kód van, ami az x kategória első 5 legfrisseb postjának címét írja ki… szal van index-bigyo-php, index-ize.php, és mindegyikhez sidebar-bigyo.php és sidebar-ize.php











    a listázásnál meg arra gondoltam, hogy nem-e itt kell keresni a megoldást:











    query_posts(‘cat=3&year=2004’);











    ha jól értem ez a 3-as kategória 2004-es postjait mutatja meg, bár nem felsorolás szerűen mint a fenti “megoldott” legfrissebbes verziónál… szal ha itt az időt kicserélem erre: showposts=5 (a mennyit mutasson) meghatározásra? aztán gondolom a loop vagy mifene










  4. igen, sablonnak hívjuk, és már sejtem hogy meglehet, csak még nem tudom megcsinálni :slight_smile:











    szólj ám ha unod az elméleti megközelítést, nekem ui tetszik ez az elemezgetés :smiley:

Fogok erre is válaszolni, csak időt igényel, és néha a “real life” közbelép…











A 3. pont majdnem minden feltételezése hibás :frowning:

a 3. pontra adott válaszodtól azért tartottam… :slight_smile: addig én is bújom még… töltögettem le phpval foglalkozó könyveket, beleásom magam… annyi azért talán stimmel hogy minden rovat vagy kaegóra listázónak külön sidebarja van? hogy a kódok rosszak egy dolog, hisz nem ismerem azokat, de ez olyan logikusnak tünik (még ha a több index.php nem is)

Akkor menjünk vissza a kályhához… (lehet, hogy neked nincs rá szükséged, de jövőbeli bloggolók esetleg hasznát veszik, ha efféle kérdésekre keresik a választ).











(az alanti számozásoknak semmi közük a fentebbi pontokhoz!)










  1. Minden becsületes könyvtárban (folder/directory) csupán egyetlen index-nek kell lennie, a fajtája (.html .php .htm etc.) mellékes. A WP-nek sincs, nem lehet több index file-ja.




  2. Ha bármelyik standard WP sablont (theme) megnézed, csupán egyetlen sidebar.php szokott bennük lenni - és ezt a WP a get_sidebar funkcióval hivja be. Ez is, mint a többiek, a WP motorban (core files) leirt, meghatározott=megcsinált saját funkció, nem egy általános PHP kód!




  3. Ahhoz, hogy világos legyen melyik nézetben milyen template file van használatban, érdemes megtekinteni a Codexben a Template Hierarchy c. cikket





    http://codex.wordpress.org/Template_Hierarchy





    Az alapvető elmélet az, hogy a WP “tudja” (abból, hogy mire klikkeltél), hogy milyen adatokat kérdezel le az adatbázisból, és az ennek megfelelő file-t fogja előkapni a theme folderből. Pl. ha egy kategória nevére klikkelsz, akkor csupán az abba a kategóriába besorolt posztokat hivjuk be a (MySQL) adatbázisból, és akkor a WP elkezd keresgélni, hogy milyen fájlt hivjon bé a megjelenités céljából, mondjuk a 3 sz. kat esetében ezt teszi: az alábbi sorrendben megnézi, hogy az illető (template) file létezik-e, és az elsőt, ami létezik behivja:





    a. category-3.php





    b. category.php





    c. archive.php





    d. index.php





    (megj. az index az egy örök zsolizsóker mindenre…)










  4. Ennek a technikának a “vizuális ábrázolására” régebben gyártottam egy oldalt, innen érhető el:





    http://www.transycan.net/blogtest/2005/03/31/visual-anatomy-of-a-wp-15-theme/





    (maga az ábra itt: http://www.transycan.net/abc/visual_anat.html )





    Ez egy átlagos sablon/theme “leképezése”… ha van alapfogalmad egy egyszerű .html file felépitéséről, akor úgy képzeld el, mintha egy szép hosszú index file-t felszabdaltak volna darabokra:





    header.php (merthogy ez a feje = head)





    index.php





    sidebar.php





    footer.php (ez a lába)





    Namost, a header, sidebar, footer mindig ugyanaz, és az index (Main Template) helyére a WP behivja az egyéb létező fájlokat (archive, single, page, category stb.) - annak függvényében, hogy mit kérdeztünk le az adatbázisból.










  • Nos, ha eddig ez világos (amit nagyon remélek), akkor tovább mehetünk. Illetve, hadd bocsássak előre valamit avval kapcsolatban, ha velekinek az az ellenvetése támad, hogy aszongya ‘dehát sok sablonban a sidebar tartalma megváltozik különféle nézetekben: mást mutat a főoldalon, mást a kategória nézetben stb.’





    Erre a válasz: még mindig csak EGY sidebar.php van, ám abban mindenféle “feltételes” kódok vannak (if else statement - angolul). Ezekről bővebben a Conditional Tags c. részben olvashatsz a Codexben, és ismét mondom: ezek specifikus WP herkentyűk, nem átalános PHP kódok - bár, természetesen, a PHP szintaxist használják:





    http://codex.wordpress.org/Conditional_Tags




  1. A fentiekből ejsze érthető, hogy amikor te “kategóriában való listázásról” beszélsz, az teljesen fölösleges, semmiféle spéci kódra nincs szükség: a WP jobban tudja mint te meg én, hogy milyen posztokat kell előkeresnie az adatbázisból, valahányszor egy kategória linkre kattint a dolgozó…





    6a. Ha más-más kinézetet (design, layout) akarsz a különféle kategóriáknak, akkor mindenikre testre szabolsz egy category-1.php, category-2.php stb. file-t - és ha azokban másféle div-eket használd, akor a stiluslapban azokat megbuherálod. (Csináltam már én is sok ilyet)




  2. Deazonbanmindazonáltal :slight_smile: - mindenik efféle category-xx.php template file-ban csupán a get_sidebar fog alapjáratban működni (mert az egy WP template tag). Olyan, hogy get_sidebar3… ne is próbáld, mert nincs a WP motorban meghatározva.




  3. Ezzel a szépen kidolgozott Catgeory Templates szisztémával ellentétben, amikor egyedi posztra bámulsz (= single post view) csupán egyetlenegy template file haszálható, a single.php - már ha van. Ha nincs, akkor az index zsoli lép elő…




  4. Ha azt akarod elérni (ha jól értettem az eredeti kérdést), hogy amikor XZ kategóriába tartozó single post-ot néz a látogató, akkor ehhez XZ sidebar mutatkozzék… nos, azt tán úgy lehet megcsinálni, hogy a single.php aljáról törlöd a generál “get_sidebar” kódot, és helyette hosszú sorokban feltételes kódokat varizsálsz:





    <?php





    if (in_category(‘2’))





    include (TEMPLATEPATH . ‘/sidebar2.php’);





    elseif (in_category(‘3’)





    include (TEMPLATEPATH . ‘/sidebar3.php’);





    elseif (in_category(‘4’)





    include (TEMPLATEPATH . ‘/sidebar4.php’);





    else get_sidebar();





    ?>





    (én kódirásban zokni vagyok, soha ne bizz abban, hogy működik, de ez az alapelev!)





    p.s. Ugyenevvel az











    sorral lehet különbnél-különb sidebar-okat bevarászolni a category template-ekbe is…











    Na, mára ennyi legyen ölég :slight_smile:

váá… szóhoz sem jutok, köszönöm





ez több napra is elég lesz, nem csak egyre :slight_smile:











a 9est jól értetted, igen ezt akarom elérni





ezt a sidebar behívós dolgot én is csináltam már gyakorlásképp, egyéb helyekre egyéb sidebart hívjon meg, de nem így, if-el vagyis feltételekkel…





vagyis ha jól értem a kódodat, akkor az lesz, hogy a single aljára a fenti kódokkal azt mondja neki a wp, hogy mivel a melós (a dolgozó :slight_smile: ) 2-es kategóriájú postra kattintott, ezért annak a 2-es sidebart hívja meg, és ott van a listázó, ami kiírja az adott kategória többi írását, amiről még nem esett szó…











na tényleg ölég mára, a hétvégém ugyis ugrott, elmegy az gyakorlásra :smiley:





mégegyszer kösz


'szeor wrote:

mondja neki a wp' date=' hogy mivel a melós (a dolgozó :) ) 2-es kategóriájú postra kattintott, ezért annak a 2-es sidebart hívja meg, és ott van a listázó, ami kiírja az adott kategória többi írását, amiről még nem esett szó..[/quote']


Na, most kezd derengeni, mit nevezel te "listázónak"...


A sidebar-ban a recent posts testreszabása?


Ember, hát ahhoz már megvan a kódod a fenti query_posts izéből!


kihagyod az offeset részt, és bevágod helyére a cat=XX darabot





query_posts(('showposts=5&cat=3');





Megj. Egyetlen veszély foroghat fent, hogy a WP megvadul a két Loop-tól single oldalon, és nem hajlandó a másodikat applikálni, ilyenkor "vissza kell tekerni" a Loopot (rewind)... van rá jó okos példa a Loop oldalon a Codexben, Multiple Loops alatt.