Поддержка Проблемы и решения query_posts игнорирует post_type

  • Здравствуйте,

    WP 4.0. Query_posts игнорирует post_type, выводит ‘post_type’ => ‘post’. Нормально работало на раних версиях WP. Подскажите плиз куда копать? Благодарю!

    query_posts(array('post_type' => 'news',
    	'offset' => $offset,
    	'posts_per_page' => 15,
    	'post_status' => 'publish',
    	'author' => $author,
    	'cat' => $category,
    	'tag' => $tag,
    	'monthnum' => $datemonth,
    	'dateyear' => $dateyear,
    	's' => $search));

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    На чистой установке ваш фрагмент работает корректно (при условии, что все параметры верны), выводятся только записи типа news.

    Это пока первое подобное сообщение — если бы проблема была в версии 4.0, думаю, их было бы гораздо больше.

    Подскажите плиз куда копать?

    Посмотреть, не переопределяется ли где-то запрос с помощью pre_get_posts. Стоит также попробовать обойтись без query_posts().

    Сергей — огромное благодарю!!! Дествительно, в теме был pre_get_posts, отключил, все работает! Спасибо!!!

    Заменил «query_posts()» на «new WP_Query», возник вопрос. При количестве постов от 500 может лучше выбирать из базы напрямую? Необходима скорость и безопасность.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    может лучше выбирать из базы напрямую?

    WP_Query в конечном итоге делает именно это, избавляя от необходимости писать запрос вручную с риском упустить нюансы вроде отображения записей со статусом «Личное» их автору. Количество записей влияет только на время выполнения запроса, со способом его подготовки оно не связано.

    С точки зрения совместимости с будущими версиями надёжнее использовать WP_Query, поскольку структура базы рано или поздно может измениться.

    Спасибо!

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «query_posts игнорирует post_type» закрыта для новых ответов.