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

Итак, читал кучу сообщений здесь и входил в Codex, но просто не повезло. У меня есть пользовательский тип сообщения, называемый «Работа». На моей странице портфолио у меня есть «posts_per_page», равный 12. Всего в этом настраиваемом типе сообщений у меня 300 сообщений. Я пытаюсь заставить пейджинг работать, но не получить его вообще.

Мой запрос:

<?php $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1; $all_work = new WP_Query(array( 'post_type' => 'work', 'tax_query' => array( array( 'taxonomy' => 'type', 'field' => 'slug', 'terms' => array('case-study', 'portfolio') ), ), 'posts_per_page' => '12', 'orderby' => 'title', 'order' => 'ASC', 'update_post_term_cache' => false, 'nopaging' => false, 'paged' => 10 ) ); while ( $all_work->have_posts() ) : $all_work->the_post(); ?> 

Мой код для разбивки на страницы:

  <aside id="post_nav"> <?php global $wp_query; $total_pages = $wp_query->max_num_pages; if ($total_pages > 1){ $current_page = max(1, get_query_var('paged')); echo '<div class="page_nav">'; echo paginate_links(array( 'base' => get_pagenum_link(1) . '%_%', 'format' => '/page/%#%', 'current' => $current_page, 'total' => $total_pages, 'prev_text' => 'Prev', 'next_text' => 'Next' )); echo '</div>'; } ?> </aside><!-- /#post_nav --> 

Не получилось ничего. Любая помощь будет принята с благодарностью!

Благодаря!

Кажется, вы пытаетесь $all_work на страницы $all_work запроса $all_work , но ваш код разбиения на страницы использует данные $wp_query

 global $wp_query; $total_pages = $wp_query->max_num_pages; if ($total_pages > 1){ $current_page = max(1, get_query_var('paged')); 

… по неизвестным мне причинам.

Если вы хотите $all_work на страницы $all_work вам нужно использовать данные $all_work . Данные в $wp-query не будут корректными. Я подозреваю, что это смешение запросов, которые вызывают проблемы, и я подозреваю, что подобное смешивание запросов является причиной того, что код в предлагаемом дубликате не работает для вас.

Что-то вроде этого должно работать:

 $page = (!empty($_GET['myp'])) ? $_GET['myp'] : 1; $per_page = 1; $base = get_queried_object(); // var_dump($base); if (null === $base) { $base = site_url(); } else { $base = get_permalink($base->ID); } // $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1; $all_work = new WP_Query(array( 'post_type' => 'page', // 'tax_query' => array( // array( // 'taxonomy' => 'type', // 'field' => 'slug', // 'terms' => array('case-study', 'portfolio') // ), // ), 'posts_per_page' => $per_page, 'orderby' => 'title', 'order' => 'ASC', 'update_post_term_cache' => false, 'nopaging' => false, 'paged' => $page ) ); $total = $all_work->found_posts; var_dump($total); while ( $all_work->have_posts() ) { $all_work->the_post(); the_title(0); } $page_args = array( 'base' => $base.'%_%', 'format' => '?myp=%#%', 'total' => ceil($total / $per_page), 'current' => $page, 'show_all' => True, 'end_size' => 1, 'mid_size' => 1, 'prev_next' => True, 'prev_text' => __('« Previous'), 'next_text' => __('Next »'), 'type' => 'plain', ); echo '<br/>'; echo paginate_links($page_args); 

Это общий код, поскольку у меня нет данных на моем сервере, но должно быть очевидно, что нужно изменить.