Mam niestandardową pętlę, której używam do wyświetlania niektórych ofert nieruchomości, które będą dostępne w ciągu 60 dni. Wywołuję to za pomocą następującej funkcji:
<?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(); ?>
Chociaż pętla działa świetnie, nie mogę jej podzielić na strony. Pokazuje pierwsze 10 (moje domyślne) posty, ale nie pokazuje podziału na strony. Jedynym sposobem wyświetlenia wszystkich postów jest pokazanie ich na jednej stronie przez dodanie 'posts_per_page' => -1,
Mam podobne pętle na innych stronach, które nie mają problemu z paginacją. Jedyną różnicą w tym przypadku jest to, że są dwa meta-klucze, które filtrują posty.
Używam WP Page Navi do tego i reszty moich stron. Zamykam pętlę i dodam paginację za pomocą następującego kodu:
<?php endwhile; // End the loop. Whew. ?>
<?php wp_pagenavi(); ?>
<?php wp_reset_query(); ?>
Jak mogę to naprawić?
custom-post-types
query
loop
pagination
nurain
źródło
źródło
Odpowiedzi:
Wcześniej miałem taki problem z PageNavi. Moim rozwiązaniem jest tymczasowe przejęcie zmiennej $ wp_query, a następnie ponowne przypisanie jej po zamknięciu pętli. Przykład:
Ostatnim krokiem jest ponowne przypisanie zmiennej $ wp_query do pierwotnej wersji, a następnie zresetowanie zapytania, aby rozpocząć.
* Edycja: * Naprawiono tag php. Dobry snajper oka.
źródło
wp_pagenavi()
teraz akceptuje równieżquery
argument , więc zamiast nadpisywania$wp_query
możesz pisaćwp_pagename( array( 'query' => $my_query ) )
.WP_Query();
.Miałem podobny problem wcześniej dzisiaj ...
Czy masz niestandardowy typ posta i stronę lub post z tym samym ślimakiem? Czy adres URL strony, którą masz / real-estate, i niestandardowy typ postu przepisujesz w / real-estate?
W takim przypadku nie możesz mieć 2 z tym samym adresem URL, w przeciwnym razie Wordpress się myli.
Możesz zmienić adres URL lub wypróbować ten http://wordpress.org/support/topic/pagination-with-custom-post-type-listing?replies=23#post-1637753 . Wybrałem zmianę adresu URL, ale ktoś tam napisał niestandardowe zapytanie, aby obejść ten problem
źródło
Używam tego do niestandardowej paginacji i działa dobrze
// Zdefiniuj to dla każdego szablonu, takiego jak szablon-biuletyn
źródło
To rozwiązanie działało dla mnie, wykorzystując część oryginalnego kodu nurain i odpowiedź Jana Fabry'ego:
źródło
Za pomocą tej metody możesz wyświetlić niestandardowy typ postu, dzięki czemu podział na strony może działać !!!
źródło