wp_reset_postdata () или wp_reset_query () после пользовательского цикла?

Чтение некоторых вещей о query_reset_postdata и query_reset_query заставляет меня запутаться. Например:

  
  1. Нужно ли использовать вместе wp_reset_postdata и wp_reset_query?

  2.   
  3. http://www.poststat.us/properly-reset- WordPress-запрос /

  4.   

Выше сказано, что при использовании «отдельных запросов» следует использовать query_reset_postdata () . В примере 2 есть комментарий:

  WP_Query ($ args) = wp_reset_postdata ();
 

и

  query_posts ($ args) = wp_reset_query ();
 

И действительно, вы никогда не должны использовать wp_reset_query , потому что вы не должны использовать query_posts!?

В WP Codex указано, что после пользовательского цикла (первый пример) следует использовать wp_reset_query () http://codex.wordpress.org/Function_Reference/wp_reset_query

Правильно ли это код?

37 голосов | спросил bestprogrammerintheworld 14 Mayam14 2014, 10:35:18

1 ответ


55

Разница между ними заключается в том, что

  • wp_reset_query () - убедитесь, что основной запрос был сброшен в исходный основной запрос
  • wp_reset_postdata () - гарантирует, что глобальный $ post был восстановлен в текущую запись в основном запросе.

В самом деле, глядя на источник , вы увидите, что wp_reset_query () вызывает wp_reset_postdata () . Единственная разница между двумя этими словами:

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

wp_reset_query () ). Таким образом, wp_reset_query () необходим только в том случае, если эти два глобальных символа отличаются друг от друга, и это происходит только в том случае, если query_posts () был использован где-то.

Когда следует использовать их?

Проще говоря:

  • wp_reset_postdata () - сразу после каждого пользовательского WP_Query ()
  • wp_reset_query () - сразу после каждого цикла, используя query_posts ()

Должен ли я использовать wp_reset_query

Ну, да, но это необходимо только после использования query_posts () . Как вы указали, вы никогда не следует использовать query_posts () . Поэтому, если вы никогда не используете query_posts () , то не обязательно вызывать wp_reset_query () (вместо wp_reset_postdata () .

Короче говоря, вы не должны использовать wp_reset_query () вместо wp_reset_postdata () , это значит, что вам никогда не понадобится!

ответил Stephen Harris 14 Mayam14 2014, 10:49:16

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132