Három módon lehet visszaállítani a ciklust wordpress wp_reset_postdata, wp_reset_query és rewind_posts, szól

Az első, a wp_reset_postdata (), lehetővé teszi a $ $ globális változó visszatérését a fő lekérdezés kezdeti állapotába. A sabloncímke különösen hasznos a WP_Query használatakor; lehetővé teszi a ciklusok kimenetének megváltoztatását vagy több ciklus létrehozását egy oldalon. Ez így néz ki:

Amennyire láthatja, ez a címke nagyon egyszerű az alkalmazásban: nem vesz paramétereket, és nem ad vissza értékeket. Ez egyszerűen eldobja a rekordadatokat tetszőleges lekérdezés végrehajtása után. Tegyük fel például, hogy WP_Query hurok van a téma header.php fájljában:

Ez a hurok véletlenszerű bejegyzést mutatott a fejlécben, de megváltoztatná az igénylő objektumot is az oldal bármely más hurokjára vonatkozóan. A kezdeti adatok nélkül a fő hurok végrehajtása a rekordokkal, azaz az index.php-ben, váratlan eredményekhez vezethet. Szerencsére a wp_reset_postdata segítségével visszaadhatja a kérés objektumot a kezdeti állapotba.

Ehhez hagyja a wp_reset_postdata mögött minden tetszőleges hurok után. Visszatérve a korábbi példánkhoz a ciklus visszaállításához elegendő a wp_reset_postdata alkalmazását:

Így elkerüljük a többszörös ciklusok végrehajtásával kapcsolatos ismeretlen és érthetetlen hibák többségét.

A Wp_reset_postdata a legjobban a WP_Query által létrehozott hurkok után használható.

A következő sabloncímke, amelyet megnézünk, a wp_reset_query (). A wp_reset_query függvény lehetővé teszi az önkényes ciklusokban használt lekérdezés visszaállítását. Ez a függvény, mint például a wp_reset_postdata, nem vesz semmilyen paramétert, és nem ad vissza értékeket. A következő formában van:

Ha megnézzük wp_reset_query funkció query.php, azt látjuk, hogy ez használ a kiegészítő funkció wp_reset_postdata, a fent leírtak szerint:

Így mindkét funkciót wp_reset_query () és wp_reset_postdata () lehetővé teszi, hogy állítsa vissza a kérés objektum visszaállításával a globális változó $ a poszt, de wp_reset_query megy egy kicsit tovább - ez a funkció valóban tönkreteszi a korábbi kérésére, mielőtt elkötelezné magát a rá bízott feladatot. Az alábbi példa mutatja annak használatát:

Kapcsolódó cikkek