Setup_postdata ($ post) ne yapıyor?


13

Kodeks bunu 'Genel gönderi verilerini ayarla' olarak tanımlar. Şablon etiketlerini kullanmak için özel sorgu sonuçlarını biçimlendirmeye yardımcı olur. ' Bunu gerçekten anlamıyorum.

İşte bir kod örneği:

global $post;
$args = array( 'numberposts' => -1);
$posts = get_posts($args);
foreach( $posts as $post) : setup_postdata($post);
echo $post->ID;
endforeach; 

Lütfen açıklayabilir misiniz?

Yanıtlar:


16

Şablon etiketi işlevleri işlenmekte olan gönderiye erişmek ve ondan veya onunla ilgili verileri almak için genel değişkenlere güvenir.

Bunların ana değişkeni $post, post nesnesinin kendisini tutar. Örneğinizde bu açık değildir, ancak olan şey, döngünüzün veri $postatamasıdır, yineleme adı değilse $post, bunu açıkça yapmanız gerekir ( global $post; $post = $some_other_post;).

Ancak başka küreseller de vardır ve amacı setup_postdata()onları veri ile doldurmaktır. Kaynağa bakarsanız, bunlar:

global $id, $authordata, $currentday, $currentmonth, $page, $pages, $multipage, $more, $numpages;

Çoğu durumda, wp_reset_postdata()küreselleri orijinal hallerine döndürmek için daha sonra çağırmanız gerektiğini unutmayın .

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.