Що робить setup_postdata ($ post)?


13

Кодекс визначає це як "Налаштування глобальних даних про пошту". Допомагає форматувати власні результати запитів для використання тегів шаблону. ' Я не дуже цього розумію.

Ось приклад коду:

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

Будь ласка, можете пояснити?

Відповіді:


16

Функції тегів шаблонів покладаються на глобальні змінні для доступу до публікації, що обробляється, та отримання даних з неї або пов'язаних з нею.

Основна змінна з них - це те, $postщо містить сам об'єкт пост. У вашому прикладі це не явно, але те, що відбувається, це те, що ваш цикл присвоює дані $post, якщо б ім'я для ітерації не було, $postвам потрібно буде це робити явно ( global $post; $post = $some_other_post;).

Однак існує маса інших глобальних мереж, мета яких setup_postdata()- заповнити їх даними. Якщо ви подивитесь на джерело, а саме вони:

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

Зауважте, що у більшості випадків вам слід закликати wp_reset_postdata()після цього повернути глобальні дані до їх початкового стану.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.