Intereting Posts
Что мне делать? Многоуровневый, один веб-сайт или множество веб-сайтов? Правильный способ включения дополнительных стилей и файлов сценариев? Перемещено WP в новую папку. Как исправить ссылки на изображения в сообщениях? Woocommerce включает пользовательскую таблицу стилей после стилизации woocommerce Вывод в XHTML или HTML 5 для плагинов? разница между запросом базы данных и использованием цикла Как найти сообщение с использованием XML-RPC без знания идентификатора Помощь в навигации Sub и Sub-Sub Как я могу скрыть все сообщения, у которых нет миниатюры? get_posts не выполняет post_status wp_create_nonce () в REST API делает user-> ID zero Защищен ли wp_login_form на небезопасной странице? Как использовать действия create_term, edit_term, delete_term? Можете ли вы предварительно проверить категории wordpress? Проверьте IF – это «страница с одним продуктом» и проверьте «роль» для перенаправления

Проблема с разбиением на страницы WordPress

Прежде всего, спасибо всем за всю базу знаний, которую я прочитал через stackexchange. Впервые я не смог найти ответ на свою проблему.

Дело в том, что с помощью этого пользовательского запроса (который имеет целью поиск по сообщениям с несколькими полями таксономии):

global $wp_query; $tax_query = array(); $parametri = array( 'ih_tipo_struttura' => array('tipo_struttura','IN'), 'ih_localita' => array('localita', 'IN'), 'ih_stelle' => array('stelle', 'IN'), 'ih_categorie' => array('categorie', 'AND'), 'ih_servizi' => array('servizi', 'AND') ); // Faccio il post dei parametri e li inserisco nella query foreach ($parametri as $post => $taxonomy) { if ( isset($_GET[$post]) && !empty($_GET[$post]) ){ $tax_query[] = array( 'taxonomy' => $taxonomy[0], 'field' => 'slug', 'terms' => $_GET[$post], 'operator' => $taxonomy[1] ); } } // Parametri base della query $args = array( 'post_type' => 'post', 'tax_query' => $tax_query ); // Parametri paginazione if ( $pagination ) { $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args['posts_per_page'] = 2; $args['paged'] = $paged; } else { $args[] = array( 'posts_per_page' => 20); // Se imposto la paginazione a false ritorno i primo 20 risultati } // Eseguo la query $wp_query = new WP_Query( $args ); return $wp_query; 

все работает нормально, пока я не попытаюсь сделать разбивку на страницы.

Когда я передаю URL-адрес некоторым параметрам $ _GET, например:

 http://mywebsite/ricerca/?ih_localita%5B%5D=riccione&ih_localita%5B%5D=rimini&ricerca_hotel=true 

или

 http://mywebsite/ricerca/page/2/?ih_localita=riccione&ih_localita%5B%5D=rimini&ricerca_hotel=true 

нет проблем, но если попробуйте:

 http://mywebsite/ricerca/page/2/?ih_localita%5B0%5D=riccione&ih_localita%5B1%5D=rimini&ricerca_hotel=true 

WordPress отключил все параметры поиска, возвращающие URL-адрес, например:

 http://mywebsite/ricerca/page/2/?ricerca_hotel=true 

Я с ума схожу с этим, поэтому я бы очень признателен за любую помощь.

Спасибо

Solutions Collecting From Web of "Проблема с разбиением на страницы WordPress"

Не $wp_query глобальном $wp_query . Используйте собственную переменную, чтобы вместо этого сохранить запрос:

 $custom_query = new WP_Query( $args ); 

Затем вы можете использовать небольшой трюк, чтобы исправить разбиение на страницы. Сделайте это до цикла:

 global $wp_query; // Store it for safekeeping $temp_wp_query = $wp_query; // Now blank it out $wp_query = null; // Now populate it with your custom query $wp_query = $custom_query; 

Затем, после закрытия цикла, восстановите исходный объект запроса:

 $wp_query = $temp_wp_query; 

Теперь ваша разбивка на страницы должна работать правильно.

На второй взгляд я понимаю, что проблема, вероятно, связана с перепиской URL-адреса на разбиение на страницы, что не очень хорошо работает с этим URL-адресом:

 page/2/?ih_localita%5B0%5D=riccione&ih_localita%5B1%5D=rimini 

отключив все множественные флажки и переписав их как:

 page/2/ 

Теперь мое решение, вероятно, будет использовать другой формат для передачи значения флажка, поэтому я сделаю что-то вроде

 page/2/?ih_localita=rimini,riccione 

что на самом деле отлично работает, но было бы неплохо выяснить, где проблема …