Не используйте
query_posts,
он повторно запускает запросы в базу и переопределяет глобальный объект
WP_Query
. Из офф. документации:
Note: This function will completely override the main query and isn’t intended for use by plugins or themes. Its overly-simplistic approach to modifying the main query can be problematic and should be avoided wherever possible. In most cases, there are better, more performant options for modifying the main query such as via the ‘pre_get_posts’ action within WP_Query.
Используйте
get_posts или pre_get_posts
- Это обертка
WP_Query
, которая упрощает выборку постов и не изменят глобальные переменные, в ней еще определены некоторые дефолтные аргументы из-за чего выборку сделать проще.
Для более гибкой выборки используйте
WP_Query