Ce que je cherche à faire:
Configuration de la WP_Query
pagination dans un fichier de modèle single-custom-post-type.php
Ce que j'ai fait
1) Création d'un type de publication appelé "auteurs". Chaque article de ce type d'article est un auteur individuel.
2) Les pages d'écran de publication standard contiennent une liste déroulante qui répertorie toutes les publications (auteurs) du type de publication personnalisé des auteurs.
3) Création d'un modèle single-authors.php qui interroge tous les messages avec les métadonnées de l'auteur dans la liste déroulante, donc le résultat est une liste de messages auxquels le même auteur leur est affecté (un peu comme une archive):
<?php
// set the "paged" parameter (use 'page' if the query is on a static front page)
global $paged;
/*We need this here to add and maintain Pagination if Template is assigned to Front Page*/
if ( get_query_var( 'paged' ) ) {
$paged = get_query_var('paged');
} elseif ( get_query_var( 'page' ) ) {
$paged = get_query_var( 'page' );
} else {
$paged = 1;
}
$args = array(
'posts_per_page' => 10,
'meta_key' => 'author_select',
'meta_value' => $author_id,
'paged' => $paged,
);
$temp = $wp_query;
$wp_query = NULL;
$wp_query = new WP_Query($args);
?>
<?php if( $wp_query->have_posts() ) : ?>
<?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
<?php // Successfully outputs the results of the above query, so I've omitted the code from this example. ?>
<?php endwhile; ?>
<div class="single_navigation">
<?php if( get_adjacent_post( false, '', true ) ) { ?>
<span class="prev"><?php previous_post_link( '< %link' ) ?></span>
<?php } ?>
<?php if( get_adjacent_post( false, '', false ) ) { ?>
<span class="next"><?php next_post_link( '%link >' ) ?></span>
<?php } ?>
</div><!--/single navigation-->
<?php endif; ?>
<?php
$wp_query = null;
$wp_query = $temp;
wp_reset_query();
?>
Sur quoi je suis coincé
Les liens de pagination n'apparaissent pas. J'ai fait quelques recherches et j'ai découvert qu'ils utilisent la $wp_query
variable, cependant quand j'ai changé ma variable de requête en $wp_query
, les liens sont apparus, mais quand on a cliqué n'a rien fait.
Une idée où je me trompe?
Éditer:
Pour répondre à certaines de vos questions, ma requête génère avec succès les messages que j'interroge, $ author_id a déjà une valeur que je n'ai pas incluse dans cet extrait de code. De même, j'ai omis la sortie de contenu réelle dans la boucle while car cette partie n'est pas le problème. Le problème est que je dois paginer le contenu qui existe déjà sur ce seul post.
Le but de cette fonctionnalité était de permettre aux publications d'avoir des auteurs personnalisés (en dehors du système intégré des utilisateurs) et le but de ce modèle est de générer toutes les publications d'un auteur donné (qui fonctionne déjà).
the_title()
'meta_value' => $author_id
que le menu déroulant est rempli? Et lors de la sélection de chaque auteur via la liste déroulante, les dix premiers articles s'affichent-ils correctement?
$author_query->have_posts()
retours true
et que le $author_query
contient effectivement des messages?