J'utilise une boucle personnalisée pour afficher certaines annonces immobilières qui seront disponibles dans les 60 jours. Je l'appelle avec la fonction suivante:
<?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(); ?>
Bien que la boucle fonctionne très bien, je ne parviens pas à la paginer. Il montre les 10 premiers articles (ma valeur par défaut) mais ne montre pas la pagination. La seule façon d'afficher tous les articles est de les afficher sur une page en ajoutant que 'posts_per_page' => -1,
j'ai des boucles similaires sur d'autres pages sans problème de pagination. La seule différence avec celui-ci est qu'il existe deux méta-clés qui filtrent les publications.
J'utilise WP Page Navi pour cela et le reste de mes pages. Je ferme la boucle et ajoute la pagination en utilisant le code suivant:
<?php endwhile; // End the loop. Whew. ?>
<?php wp_pagenavi(); ?>
<?php wp_reset_query(); ?>
Comment puis-je résoudre ce problème?
Réponses:
J'ai déjà rencontré ce problème avec PageNavi. Ma solution consiste à pirater temporairement la variable $ wp_query, puis à la réaffecter après la fermeture de la boucle. Un exemple:
La dernière étape consiste à réaffecter la variable $ wp_query à ce qui était à l'origine, puis à réinitialiser à nouveau la requête.
* Edit: * balise php fixe. Bon tireur d'élite.
la source
wp_pagenavi()
maintenant accepte également l'query
argument , donc au lieu d'écraser,$wp_query
vous pouvez écrirewp_pagename( array( 'query' => $my_query ) )
.WP_Query();
.J'ai eu un problème similaire plus tôt aujourd'hui ...
Avez-vous un type de message personnalisé et une page ou un message avec le même slug? La signification est l'URL d'une page que vous avez / real-estate et le type de message personnalisé réécrire sur / real-estate?
Si tel est le cas, vous ne pouvez pas en avoir 2 avec la même URL, sinon WordPress devient confus.
Vous pouvez soit modifier l’URL, soit utiliser http://wordpress.org/support/topic/pagination-with-custom-post-type-listing?replies=23#post-1637753 . J'ai choisi de changer d'URL, mais quelqu'un a écrit une requête personnalisée pour contourner le problème.
la source
J'utilise ceci pour la pagination personnalisée et son travail bien
// Définit ceci pour n'importe quel modèle comme template-newsletter
la source
Voici la solution qui a fonctionné pour moi, en utilisant une partie du code original de nurain et la réponse de Jan Fabry:
la source
Vous pouvez afficher votre type de message personnalisé en utilisant cette méthode, votre pagination peut fonctionner !!!
la source