У меня есть пользовательский цикл, который я использую для отображения некоторых списков недвижимости, которые будут доступны в течение 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,
что у меня есть похожие циклы на других страницах, которые не имеют проблем с разбиением на страницы. Единственная разница с этим состоит в том, что есть два мета-ключа, которые фильтруют сообщения.
Я использую WP Page Navi для этого и остальных моих страниц. Я закрываю цикл и добавляю пагинацию, используя следующий код:
<?php endwhile; // End the loop. Whew. ?>
<?php wp_pagenavi(); ?>
<?php wp_reset_query(); ?>
Как я могу исправить это?
источник
Ответы:
Я столкнулся с этой проблемой с PageNavi раньше. Мое решение - временно перехватить переменную $ wp_query и затем переназначить ее после закрытия цикла. Пример:
Последний шаг - переназначить переменную $ wp_query на то, что было изначально, а затем сбросить запрос обратно для запуска.
* Редактировать: * Исправлен тэг php. Хороший глаз снайпер.
источник
wp_pagenavi()
теперь также принимаетquery
аргумент , поэтому вместо перезаписи$wp_query
вы можете написатьwp_pagename( array( 'query' => $my_query ) )
.WP_Query();
.У меня была похожая проблема ранее сегодня ...
У вас есть пользовательский тип поста и страница или пост с тем же слагом? Имеется ли в виду URL страницы, которую вы имеете / real-estate, и пользовательский тип записи URL переписывает в / real-estate?
Если это так, у вас не может быть 2 с одинаковым URL, иначе WordPress запутается.
Вы можете изменить URL-адрес или попробовать этот http://wordpress.org/support/topic/pagination-with-custom-post-type-listing?replies=23#post-1637753 . Я решил изменить свой URL, но кто-то там написал собственный запрос, чтобы обойти проблему
источник
Я использую это для пользовательской нумерации страниц и ее работа отлично
// Определяем это для любого шаблона, такого как template-newsletter
источник
Это решение, которое сработало для меня, используя часть исходного кода от nurain и ответ Яна Фабри:
источник
Вы можете отобразить свой тип поста, используя этот метод, ваш пагинация может работать !!!
источник