Hogyan tudom "elkapni" a lekérdezést stringet a archive.php-n belül??

Hello!











A kategóriák szerinti listázásoknál az archive.php-t hívja meg a WP. Az egyik ilyen hívásnál pontosítanom kellene a szűrést, ehhez tudnom kellene, hogy milyen stringgel hívta meg a fájlt. Az a probléma, hogy a $QUERY_STRING üresen tér vissza. Vagy én nem használom jól vagy más a baj.











Így néz ki maga a feltétel:










<?php


$url = $QUERY_STRING;


if ( $url == "cat=13" ) {


$ho = (int)date('m');


query_posts("showposts=5&cat=$ho");


}


?>





Ha kézzel megadom, csodálatosan megy, de így a ?$url üres, nem kap értéket. Valahogy másképpen kellene?





Köszönöm!

Ez így önmagában szerintem nem jó.





A legegyszerűbben így lehet megoldani, amit szeretnél:



Code:



$ho = get_query_var('cat');








Egy másik verzió:


Code:



global $wp_query;

$ho = $wp_query->query_vars;

Köszi, de az a része működik. Az nem működik, hogy az eredeti hívást “elkapjam”. Ez a sor nem ad vissza értéket.











$url = $QUERY_STRING;











A többi rendben van. Ha a $url -nek kézzel adok értéket, minden remekül működik.

Mert nincs ilyen változó :slight_smile:











Inkább mondd el mit szeretnél csinálni, mire akarod használni (azon kívül, hogy “az eredeti hívást elkapni”).


DjZoNe wrote:

Mert nincs ilyen változó :)





Inkább mondd el mit szeretnél csinálni, mire akarod használni (azon kívül, hogy "az eredeti hívást elkapni").








Van egy kategória sor a honlapon. Ezekre kattintva az adott kategóriák jönnek be. Az egyiknél ez nekem nem jó, ott felül szeretném bírálni, hogy ne az a kategória jöjjön be hanem másik, méghozzá dinamikusan az, amelyik hónap éppen van. Létrehozok 1,2...12 ID-jű kategóriákat és a hónap sorszámával jönnek szépen be. Ez a része működik.


De mivel mindegyik az archive.php-t hívja, ott kell megnéznem, hogy a felhasználó melyik linkre kattintott, melyikkel hívta meg. Ha ez a cat=13, akkor felülírom a hónappal a cat=8, jelen esetben, aztán a jövő honapban, ha a hívás cat=13, akkor cat=9-el.


Ez a második része teljesen jól megy, csak valahogy tudnom kellene, hogy mi volt az eredeti feltétel. Erre lenne jó a $QUERY_STRING, de WP alatt nem ad vissza értéket. Sima PHP fájlban pont azt adja vissza, ami nekem kell, de WP alatt nem szeretné.

Akkor, csak magamat tudom ismételni :slight_smile:











A $wp_query->query_vars és $wp_query->query_vars lesznek a te barátaid, ha be van kapcsolva a rewrite modulod.











Ha nincs rewritod bekapcsolva, akkor próbálkozhatsz a $wp_query->query_vars[0]; értékével.











A $QUERY_STRING egyébként csak akkor létezik, ha a register_globals ON állapotban van (php.ini). Ha ez ki van kapcsolva akkor a $_SERVER tömb elemként fogd tudni elérni.

Közben megvan a megoldás. A wp_title() -t “kapom” el, ez tartalmazza a kategória nevét. Ebből tudom, hogy melyiktől jött a hívás és el tudom irányítani.


DjZoNe wrote:

Akkor, csak magamat tudom ismételni :)





A $wp_query->query_vars és $wp_query->query_vars lesznek a te barátaid, ha be van kapcsolva a rewrite modulod.





Ha nincs rewritod bekapcsolva, akkor próbálkozhatsz a $wp_query->query_vars[0]; értékével.





A $QUERY_STRING egyébként csak akkor létezik, ha a register_globals ON állapotban van (php.ini). Ha ez ki van kapcsolva akkor a $_SERVER tömb elemként fogd tudni elérni.








Köszönöm, ez valószínűleg "elegánsabb" megoldás, meg is nézem.