Архивные страницы перестали выполнять запросы 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'