Intereting Posts
Форма WordPress PHP – данные удаляются при выходе из страницы Страница архива Sensei, как заставить WordPress показывать содержимое на основе шаблонов архива Как скрыть количество сообщений и сообщений других пользователей от edit.php для авторов и авторов Есть ли крючок или функция, которую я могу использовать для отображения всех файлов тем, используемых на текущей странице? Изменение виджета поиска по умолчанию Медленное начальное время загрузки сайта Тип сообщения администратора другой пост-класс, когда шаблон загружается через ajax WordPress в подкаталоге, но не изображениях Общие иерархические постоянные ссылки для пользовательских типов сообщений и таксономии Загружать визуальный редактор без специального стиля контроль версий для wordpress? (папка WordPress и база данных одновременно) wpdb-> get_var – количество сообщений автора, мета значение Установить изображение, помещенное на изображение автора 404 Ошибки из-за тегов, преобразованных в категории

Разбиение страницы не работает с настраиваемой петлей

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

<?php $sixtydays = date('Y/m/d', strtotime('+60 days')); $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $query = new PostsOrderedByMetaQuery(array( 'post_type' => array('post', 'real-estate'), 'meta_key' => 'Time Available', 'meta_compare' => '<=', 'meta_value' => $sixtydays, 'paged' => $paged, 'orderby_meta_key' => 'Price', 'orderby_order' => 'ASC' )); ?> <?php while ($query->have_posts()) : $query->the_post(); ?> 

Хотя цикл работает отлично, я не могу заставить его разбиваться на страницы. Он показывает первые 10 (мои по умолчанию) сообщения, но не показывает разбиение на страницы. Единственный способ показать все сообщения – показать их на одной странице, добавив 'posts_per_page' => -1, меня есть аналогичные циклы на других страницах, у которых нет проблем с 'posts_per_page' => -1, по страницам. Единственное отличие этого заключается в том, что есть два мета-ключа, которые фильтруют сообщения.

Я использую WP Page Navi для этого и остальных моих страниц. Я закрываю цикл и добавляю разбивку на страницы, используя следующий код:

 <?php endwhile; // End the loop. Whew. ?> <?php wp_pagenavi(); ?> <?php wp_reset_query(); ?> 

Как я могу это исправить?

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

Раньше я сталкивался с этой проблемой с PageNavi. Мое решение – временно захватить переменную $ wp_query, а затем переназначить ее после закрытия цикла. Exmaple:

 <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args=array( 'post_type'=>'post', 'cat' => 6, 'posts_per_page' => 5, 'paged'=>$paged ); $temp = $wp_query; $wp_query= null; $wp_query = new WP_Query($args); /* PageNavi at Top */ if (function_exists('wp_pagenavi')){wp_pagenavi();} if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post(); /* DO STUFF IN THE LOOP */ endwhile; endif; /* PageNavi at Bottom */ if (function_exists('wp_pagenavi')){wp_pagenavi();} $wp_query = null; $wp_query = $temp; wp_reset_query(); ?> 

Последний шаг состоит в том, чтобы переназначить переменную $ wp_query на то, что было изначально, а затем сбросить запрос до начала.

* Изменить: * Исправлен тэг php. Хороший глазный снайпер.

Сегодня у меня была аналогичная проблема …

У вас есть пользовательский тип сообщения, а также страница или сообщение с тем же самым слипом? Значение – это URL страницы, на которой у вас есть / недвижимость, и пользовательский тип URL-адреса для переписки в / недвижимость?

Если это так, у вас не может быть 2 с тем же URL-адресом, иначе WordPress запутается.

Вы либо можете изменить URL-адрес, либо попробовать этот http://wordpress.org/support/topic/pagination-with-custom-post-type-listing?replies=23#post-1637753 . Я решил изменить свой url, но кто-то там написал пользовательский запрос, чтобы обойти проблему

Я использую это для пользовательской разбивки на страницы и ее работу отлично

 //paginations for newsletter //define in function file function custom_pagination($numpages = '', $pagerange = '', $paged='') { if (empty($pagerange)) { $pagerange = 2; } /** * This first part of our function is a fallback * for custom pagination inside a regular loop that * uses the global $paged and global $wp_query variables. * * It's good because we can now override default pagination * in our theme, and use this function in default queries * and custom queries. */ if ($paged == '') { global $paged; if (empty($paged)) { $paged = 1; } } if ($numpages == '') { global $wp_query; $numpages = $wp_query->max_num_pages; if(!$numpages) { $numpages = 1; } } /** * We construct the pagination arguments to enter into our paginate_links * function. */ $pagination_args = array( 'base' => get_pagenum_link(1) . '%_%', 'format' => 'page/%#%', 'total' => $numpages, 'current' => $paged, 'show_all' => false, 'end_size' => 1, 'mid_size' => $pagerange, 'prev_next' => true, 'prev_text' => __('&#9668;'), 'next_text' => __('&#9658;'), 'type' => 'plain', 'add_args' => true, 'add_fragment' => '', 'after_page_number' => '', 'before_page_number' =>'', ); $paginate_links = paginate_links($pagination_args); if ( $paginate_links ) { echo "<nav class='custom-pagination'>"; //echo "<span class='page-numbers page-num'>Page " . $paged . " of " . $numpages . "</span> "; echo $paginate_links; echo "</nav>"; } } ?> 

// Определите это для любого шаблона, такого как шаблон-бюллетень

  <?php $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1; $newslatter_detail = array( 'post_type' => 'newsletter', 'post_status' => 'publish', 'posts_per_page' =>4, 'order' => 'ASC', //'orderby' =>'date', 'paged' => $paged ); $posts = new WP_Query( $newslatter_detail ); $posts_array = get_posts( $newslatter_detail ); if ( $posts -> have_posts() ) { while ( $posts->have_posts() ) : $posts->the_post(); the_title(); endwhile; wp_reset_postdata(); } else { ?> No Forum List found. <?php } ?> <div class="pagination"> <?php if (function_exists(custom_pagination)) { custom_pagination($posts->max_num_pages,"",$paged); } ?> </div> 

Это решение, которое сработало для меня, используя часть оригинального кода nurain и ответ Jan Fabry:

 <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $myquery = new WP_Query( array( 'posts_per_page' => '2', 'paged'=>$paged // add any other parameters to your wp_query array ) ); ?> <?php if ($myquery->have_posts()) : while ($myquery->have_posts()) : $myquery->the_post(); ?> <!-- Start your post. Below an example: --> <div class="article-box"> <h2 class="article-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <p class="article-excerpt"><?php echo(get_the_excerpt()); ?></p> </div> <!-- End of your post --> <?php endwhile; ?> <?php wp_pagenavi( array( 'query' => $myquery ) ); ?><!-- IMPORTANT: make sure to include an array with your previously declared query values in here --> <?php wp_reset_query(); ?> <?php else : ?> <p>No posts found</p> <?php endif; ?> 

Вы можете отобразить свой пользовательский тип сообщения, используя этот метод, который может работать с разбивкой по страницам !!!

 <?php query_posts( array( 'post_type' => 'post', 'posts_per_page' => '2', 'paged' => get_query_var( 'paged' ) ) ); if (have_posts() ) : while (have_posts() ) : the_post(); ?> <!-- Start your post. Below an example: --> <div class="article-box"> <h2 class="article-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <p class="article-excerpt"><?php echo(get_the_excerpt()); ?></p> </div> <!-- End of your post --> <?php endwhile; ?> <?php wp_pagenavi(); ?><!-- IMPORTANT: make sure to include an array with your previously declared query values in here --> <?php wp_reset_query(); ?> <?php else : ?> <p>No posts found</p> <?php endif; ?>