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?
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é.
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.
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.