Ajax подгрузка страниц, is_home и pre_get_posts
-
Я сделал для главной страницы сайта подгрузку новостей с помощью AJAX, новости подгружаются но есть проблема: не срабатывают фильтры которые применяются для вывода новостей на главную страницу.
Немного кода чтобы объяснить:
<?php // Этим хуком я убираю с главной страницы новости // из категорий cat1 и cat2 add_action('pre_get_posts', function($query) { // $query->is_home() && $query->is_main_query() // На главной эти 2 метода возвращают true, // но когда я выполняю запрос через ajax то оба // метода возвращают false и приходят // новости содержащиеся в категорях cat1 и cat2 if($query->is_home() && $query->is_main_query()) { $tax_query = array( array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => 'cat1,cat2', 'operator' => 'NOT IN', ), ); $query->tax_query->queries[] = $tax_query; $query->query_vars['tax_query'] = $query->tax_query->queries; } });
При запросе через AJAX:
<?php // Тут и начинается проблема $loop = new WP_Query(array( 'post_type' => 'post', 'posts_per_page' => $_POST['ppp'], 'post_status' => 'publish', 'offset' => $_POST['offset'] )); // По тому что: // $loop->is_home() == false // $loop->is_main_query() == false
Как мне указать wordpress-у что запрос этот является главным?
Просмотр 5 ответов — с 1 по 5 (всего 5)
Просмотр 5 ответов — с 1 по 5 (всего 5)
- Тема «Ajax подгрузка страниц, is_home и pre_get_posts» закрыта для новых ответов.