query_posts problémák

Sziasztok!











Nézegettem a fórumot, de nem találtam rá választ, így nyitok egy témát.











Én rendszeresen szoktam használni a query_posts függvényt, leginkább arra a célra, ha a sidebar-on csak egy bizonyos kategória vagy címke bejegyzéseit akarom kilistázni.











Ez eddig rendben, működik is megfelelően.











Adok egy példát a használatára:









Code:

<?php query_posts($query_string."&cat=12&orderby=title&order=ASC"); ?>

<?php while (have_posts()) : the_post(); ?>



  • <?php the_title(); ?>
  • <?php endwhile; ?>








    Több wp-ben használok ehhez hasonlót, tökéletesen működik.





    Ha viszont a sidebar részen ez után a kód után akarok egy if-es feltételt beírni, akkor az nem működik.





    pl.:





    Code:

    <?php if (is_home()): ?>

    html kód..

    <?php endif ?>








    Tehát, ha a query_posts függvény után rakom be az if-es feltételt, nem veszi figyelembe. Ha a query_posts elé, akkor természetesen működik. Már sokadszor botlok bele ebbe a problémába, és fogalmam sincs, hogy miért van.





    Szóval miért van ez, és hogy lehet megoldást találni rá, hogy működjenek a query_posts függvény után is a feltételek?





    Üdv.: Arni

    Kicsit nyakatekerten, de megoldottam. Leírom, hátha másnak is hasznára lehet.











    A történet egyszerű. A fentebbi kódrészletet (a query_posts függvényeset) is be kell tenni egy if-es feltételbe. Logikai értelemben nem változik semmi, de így mégis működi az utána lévő feltétel. Tehát a query_posts függvényes részt egy olyan feltételbe kell beletenni, ami mindig igaz például.

    Azt hittem, hülyét kapok, mikor rátaláltam a megoldásra, ami mindvégig a szemem előtt volt, de kb. 1 éven keresztül nem tudtam megoldani











    Megoldás a programblokk végére be kell szúrni (általában az endwhile után):











    wp_reset_query()











    Hogy én mit szenvedtem emiatt, hihetetlen. Na mindegy, ennyi az egész :smiley:











    Arni