Özel bir döngüden sonra wp_reset_postdata () veya wp_reset_query ()?


42

Hakkında bazı şeyler okuma query_reset_postdatave query_reset_querybeni karıştı yapar. Örneğin:

  1. Hem wp_reset_postdata hem de wp_reset_query'yi birlikte kullanmaya gerek var mı?

  2. http://www.poststat.us/properly-reset-wordpress-query/

Yukarıda, yalnızca query_reset_postdata()"ayrı sorgular" kullanırken kullanmanız gerektiğini belirtir . Örnek 2'de bir yorum var:

WP_Query( $args ) = wp_reset_postdata();

VE

query_posts ( $args ) = wp_reset_query();

Ve gerçekten kullanmamalısın wp_reset_queryçünkü query_posts! Kullanmamalısın.

WP Kodeksinde wp_reset_query(), özel bir döngüden sonra kullanmanız gerektiğini belirtir (ilk örnek) http://codex.wordpress.org/Function_Reference/wp_reset_query

Kodeks yanlış mı?

Yanıtlar:


64

İkisi arasındaki fark şudur:

  • wp_reset_query() - ana sorgunun orijinal ana sorguna sıfırlandığından emin olun
  • wp_reset_postdata()- Global'in $post, ana sorgudaki mevcut gönderiye geri yüklenmesini sağlar .

Nitekim, kaynağa bakarken wp_reset_query()çağrıların olduğunu göreceksiniz wp_reset_postdata(). İkisi arasındaki tek fark, o zaman bu satırdır:

$GLOBALS['wp_query'] = $GLOBALS['wp_the_query'];

(in wp_reset_query()) Öyleyse wp_reset_query()sadece bu iki küre farklıysa gerekli olur ve bu yalnızca bir query_posts()yerde kullanılmışsa olur .

Onları ne zaman kullanmalıyım?

Basit ifadeyle:

  • wp_reset_postdata() - hemen hemen her alışkanlıktan sonra WP_Query()
  • wp_reset_query() - kullanarak her döngüden hemen sonra query_posts()

Wp_reset_query kullanmalı mıyım

Evet, ama sadece kullandıktan sonra gerekli query_posts(). Belirttiginiz gibi asla kullanmamalisinizquery_posts() . Hiç kullanmıyorsanız Yani query_posts()o zaman var gerekli değildir aramaya wp_reset_query()yerine ( wp_reset_postdata().

Kısacası, kullanmak wp_reset_query()yerine kullanmamanız wp_reset_postdata()gereken, hiç gerekmediğiniz bir durum!


1
Yani temelde diyorsunuz: Sadece wp_reset_postdata () kullanın ve kodeks kötü bir örnektir? (Doğru yapmak istiyorsanız)
bestprogrammerintheworld

1
Kodeks değişebilir, bu yüzden yanlış olabilecek mutlak ifadeler yapmaktan kaçınacağım. Bu WP_Query()kullanan wp_reset_query()ve gereksiz yere böylece bir döngü vardır . Bunun wp_reset_postdata()yerine kullanabilir , ancak zarar vermez. Ayrıca , kullandığı query_posts()ve kullanması gereken bir örneği vardır wp_reset_query(). Kodeks'te belirtildiği gibi, bu kötü bir örnek olmakla birlikte query_posts(), asla kullanılmaması gereken anlamda 'tavsiye edilmez' .
Stephen Harris,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.