Intereting Posts
Программно выбрать фоновый цвет для изображения? Удалить существующего автора. Пользователь Frontend во время удаления настраиваемого типа сообщения Попытка установить определенные размеры изображения и обрезать с помощью ACF Пожалуйста, объясните, как WordPress работает с набором символов MySQL и сортировкой на низком уровне скрывать определенные категории от показа Сортировка таксономии в алфавитном порядке по мета-позиции, а не по умолчанию Получить точные сообщения из категории и подкатегорий Что касается «Вставить ошибку запроса» в wordpress Различные заголовки для каждой страницы в дочерней теме двадцать тринадцать Обратный вызов короткого кода для add_action ('wp_footer') Шаблоны пользовательских сроков Добавьте дополнительные параметры файла (jpeg compression & file size) для редактирования экрана «Редактировать изображения» Функция is_email () Не проверяется в пределах цикла forach Получить собственный URL-адрес архива post_type Где хранится предпочтение панели администратора пользователя? Я хочу, чтобы он по умолчанию отключился для новых пользователей

Разбиение на страницы с пользовательским запросом, пользовательская форма поиска, одиночные и страницы, ajax и плагины

Я прочитал много сообщений о разбиении на страницы с пользовательскими запросами и попробовал предлагаемые ответы (например, этот ). Однако кажется, что моя ситуация немного сложнее, и в существующих вопросах люди часто упоминают плагины для разбивки на страницы, которые я не хочу использовать (если это возможно).

У меня есть обычная форма поиска. URL-адрес действия и целевая страница (страница результатов) формы поиска могут быть страницей или одной из нескольких уникальных страниц специального типа. Это все работает как ожидалось.

Пагинация работает, когда я напрямую перехожу на страницу результатов, но это не происходит, когда я использую форму пользовательского поиска для ввода значений. Он выводит правильные результаты, потому что, когда я устанавливаю posts_per_page в -1 я могу видеть правильные результаты.

Проблема

Дело в том, что когда я нажимаю номер страницы, div, где страница должна быть загружена (через AJAX), остается пустой.

Код

На странице результатов у меня есть пользовательский запрос, который использует ввод из формы поиска:

 $query = my_function($v1, $v2, $v3, $v4); 

Аргументы для запроса определяются в функции:

 function my_function($v1, $v2, $v3, $v4) { // The $v variables are used to create $args. It's a lot of code and there are several versions of $args. I'm not displaying this information here because the query itself is working like I've described above. $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'post_type' => 'events', 'post_status' => 'publish', 'posts_per_page' => 20, 'paged' => $paged, 'meta_query' => array($meta_query), 'meta_key' => 'date_from', 'orderby' => 'meta_value', 'order' => 'ASC', ); return new WP_Query($args); } 

Затем на странице результатов, после определения $ query:

 if($query->have_posts()): while ($query->have_posts()): $query->the_post(); // Do stuff here endwhile; echo create_pagination($query); endif; wp_reset_query(); 

Функция разбиения на страницы:

 function create_pagination($query) { $big = 99999999; $args = array( 'base' => str_replace($big, '%#%', get_pagenum_link($big)), 'format' => '/page/%#%', 'total' => $query->max_num_pages, 'current' => max(1, get_query_var('paged')), 'show_all' => false, 'end_size' => 1, 'mid_size' => 2, 'prev_next' => true, 'prev_text' => '<i class="icon-chevron-left"></i>', 'next_text' => '<i class="icon-chevron-right"></i>', 'type' => 'list' ); return paginate_links($args); } 

И для того, чтобы справиться с этим и сделать это еще более сложным :-), код для использования AJAX для разбивки на страницы:

 $('.listcontent').on('click', '#pgn a', function(e){ e.preventDefault(); var link = $(this).attr('href'); $('.yt-listcontent').fadeOut(300, function(){ $(this).load(link + ' .listcontent', function() { $(this).fadeIn(300); }); }); }); 

Обратите внимание: как я уже говорил, запрос работает так, как ожидалось, также при использовании пользовательской формы поиска. Также работает разбиение на страницы js выше. Как описано для запроса, js работает, когда я перехожу на страницу результатов и не вводя информацию в форму поиска.

Случается, что при вводе информации в форму пользовательского поиска создается разбиение на страницы (и ссылки также указывают на example.com/thecurrentpage/page/pagenumberhere ) и отображаются даже при правильных ссылках на страницы. Но когда нажата ссылка на .listcontent div .listcontent остается пустой (эффект затухания .listcontent ).

Я думаю, что что-то не так с настройками разбивки на страницы, и, хотя я считаю, что моя форма и запрос правильные, разбиение на страницы по-прежнему немного абракадабра для меня.

ОБНОВИТЬ

Пробовав код из этого сообщения, как было предложено, проблема остается прежней. В этом решении используется поисковый запрос (следовательно, global $wp_query ), поэтому я думаю, что проблема global $wp_query с пользовательским запросом.