несколько петель с разбиением на страницы на одной странице

Я ищу в Интернете этот ответ уже три недели. Пробовал много вещей, но ничто, похоже, не работает так, как должно работать. Должно быть какая-то трюк, что, вероятно, не имеет смысла никому, что должно заставить его работать. Конечно, я говорю об итерации через несколько типов вашего контента wordpress с возможностью навигации по содержимому контента.

Возможности для получения списка вашего контента бесконечны, и я, вероятно, пробовал их все, кроме как без использования функций wordpress (только PHP funcs). О каждой вариации, о которой я мог думать: while loop with get_posts & wp_query, foreach loop with get_posts & wp_query, внешний php-скрипт с циклом, который работает с ajax, мини-петли отличного плагина, но не заполнил мои пожелания …

Итак, что пошло не так, за какую вариацию? У меня было много проблем с самим выходом. Но самой распространенной проблемой была разбивка на страницы. С get_posts и wp_query while и foreach я смог получить правильное содержимое с разбивкой на страницы. Только я не мог заставить себя работать так, как должен. При нажатии на ссылку для разбивки на страницы он не получает новый список содержимого (следующая страница).

Это базовый цикл итераций, который я использую сейчас, для моей социальной категории:

<?php //SET THE CURRENT PAGE HERE $socials = array( 'paged' => $socialPaged, 'posts_per_page' => 5, 'category_name' => 'social' ); $social = new WP_Query($socials); if($social) { while($social->have_posts()) { $social->the_post(); //DO THINGS, LOTS OF THINGS } //HERE COMES THE PAGINATION NAVIGATION wp_reset_postdata($social); } else { echo "Sorry, there are no posts to display"; } ?> 

Это то, что работало лучше всего для определения текущей страницы:

 $socialPaged = isset($_GET['social']) ? (int) $_GET['social'] : 1; 

Это то, что работало лучше всего для моей навигации по страницам:

 $socialPagArg = array( 'base' => get_pagenum_link(1).'%_%', 'format' => '?social=%#%', 'current' => $socialPaged, 'total' => $social->max_num_pages ); echo paginate_links($socialPagArg); 

Выполнение этого способа позволило успешно перемещаться в одном цикле. URL-адрес изменится на /?social=# если я один раз разбив на страницы, и содержимое изменится, но если я добавлю другой цикл и начну с ним разбиваться на страницы. Затем URL-адрес покажет другую проблему.

 /?loop1=2?social=2 //paged once on loop1 and than once on social /?loop1=2%3Fsocial%3D2?social=2 //paged once on loop1 and than twice on social 

Также контент больше не меняется. Но я предпочитаю иметь довольно URL-адреса, следующая функция возвращает URL-адреса, подобные этой /page/# но эта функция не изменит мой список содержимого.

 next_posts_link('Older',$social->max_num_pages); 

Как это должно работать в URL:

 /page/cat1/2 //paged once in loop cat1 /page/cat1/2/cat2/2 //started paging in cat2 as well /page/cat1/3/cat2/2 //paged once more in loop cat1 /page/cat1/3/cat2/3 //paged once more in loop cat2 

Но это также один большой беспорядок, использование сессий не лучше?

Solutions Collecting From Web of "несколько петель с разбиением на страницы на одной странице"