Запросы с использованием WP_Query перестали работать на страницах архива после обновления 5.2 - PullRequest
1 голос
/ 13 мая 2019

Архивные страницы перестали выполнять запросы WP_Query с момента обновления 5.2

У меня есть сайт, который работает в течение года, который использует несколько пользовательских типов контента и архивы контента, которые используют шаблоны, например, archive-meeting.php, archive-news.php

Эти шаблоны используют WP_Query для создания списков пользовательских сообщений.

В последнее время (после обновления 5.2) они перестали работать, и вызовы WP_Query не дают результатов.

В архиве-venue.php

$args = array(
    'post_type'              => array( 'venue' ),
    'order'                  => 'ASC',
    'posts_per_page'=>-1 ,
    'orderby'                => 'title',
);
global $post;
$query = new WP_Query( $args );

// The Loop
if ( $query->have_posts() ) {....

Это работало до недавнего времени. То же самое и с пользовательскими типами записей и без пользовательских. Другой код в шаблоне работает нормально.

Копирование точно такого же кода в стандартный шаблон страницы (т.е. не шаблон архива) работает нормально. Похоже, дело только в страницах архива.

Похоже, что SQL-код, возвращаемый Запросом, отличается на странице архива: -

Вызывается на странице архива, например, archive-venue.php


  ["request"]=>
  string(412) "SELECT   wp_posts.* FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'venue' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') AND wp_posts.post_type <> 'venue' AND wp_posts.post_type <> 'meeting' AND wp_posts.post_type <> 'hospital' AND wp_posts.post_type <> 'news' AND wp_posts.post_type <> 'school-information' AND wp_posts.post_type <> 'carousel'  ORDER BY wp_posts.post_title ASC "
  ["posts"]=>
  array(0) {
  }

Вызывается на неархивированной странице, например, temppage.php


 ["request"]=>
  string(188) "SELECT   wp_posts.* FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'venue' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')  ORDER BY wp_posts.post_title ASC "
  ["posts"]=>
  array(27) {
    [0]=>
    object(WP_Post)#14701 (24) {
      ["ID"]=>
      int(4979)
      ["post_author"]=>
      string(3) "124"
      ["post_date"]=>
      string(19) "2019-05-01 11:08:44"

Код SQL, сгенерированный в шаблоне архива, содержит два конфликтующих предложения ...

ГДЕ .... wp_posts.post_type = 'Venue' .... И wp_posts.post_type <> 'Venue'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...