Cosa sto cercando di fare:
Imposta l' WP_Query
impaginazione in un file modello single-custom-post-type.php
Cosa ho fatto
1) Crea un tipo di post chiamato "autori". Ogni post all'interno di quel tipo di post è un singolo autore.
2) Le pagine della schermata dei post di modifica standard contengono un menu a discesa che elenca tutti i post (autori) del tipo di post personalizzato degli autori.
3) Crea un modello single-autori.php che interroga tutti i post con i metadati dell'autore dal menu a discesa, quindi il risultato è un elenco di post a cui è assegnato lo stesso autore (un po 'come un archivio):
<?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();
?>
Ciò su cui sono bloccato
I collegamenti di impaginazione non vengono visualizzati. Ho fatto qualche ricerca e ho scoperto che usano la $wp_query
variabile, tuttavia quando ho cambiato la mia variabile di query in $wp_query
, i collegamenti sono apparsi, ma quando si fa clic non ha fatto nulla.
Qualche idea su dove sbaglio?
Modificare:
Per rispondere ad alcune delle tue domande, la mia query genera correttamente i post che sto interrogando, $ author_id ha già un valore che non ho incluso in questo frammento di codice. Allo stesso modo, ho omesso l'output del contenuto effettivo all'interno del ciclo while perché quella parte non è il problema. Il problema è che devo impaginare il contenuto già esistente in questo singolo post.
Lo scopo di questa funzionalità era quello di consentire ai post di avere autori personalizzati (al di fuori del sistema Users incorporato) e lo scopo di questo modello è quello di produrre tutti i post per un determinato autore (che sta già funzionando).
the_title()
'meta_value' => $author_id
compilato dal menu a discesa menzionato? E quando si seleziona ciascun autore tramite il menu a discesa, i primi dieci post vengono visualizzati correttamente?
$author_query->have_posts()
ritorni true
e che $author_query
effettivamente contenga post?