Was ich machen möchte:
Richten Sie die WP_QueryPaginierung in einer einzelnen benutzerdefinierten post-type.php-Vorlagendatei ein
Was habe ich getan
1) Erstellt einen Beitragstyp namens "Autoren". Jeder Beitrag innerhalb dieses Beitragstyps ist ein einzelner Autor.
2) Standardmäßige Seiten zum Bearbeiten von Beiträgen enthalten ein Dropdown-Menü, in dem alle Beiträge (Autoren) des benutzerdefinierten Beitragstyps des Autors aufgelistet sind.
3) Es wurde eine Vorlage für die Datei "single-authors.php" erstellt, in der alle Posts mit den Autoren-Metadaten aus der Dropdown-Liste abgefragt werden. Das Ergebnis ist eine Liste der Posts, denen derselbe Autor zugewiesen ist (eine Art Archiv):
<?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();
?>
Woran ich festhalte
Die Paginierungslinks werden nicht angezeigt. Ich habe einige Nachforschungen angestellt und festgestellt, dass sie die $wp_queryVariable verwenden. Als ich jedoch meine Abfragevariable in änderte $wp_query, erschienen die Links, aber wenn geklickt wurde, geschah nichts.
Irgendeine Idee, wo ich falsch liege?
Bearbeiten:
Um einige Ihrer Fragen zu beantworten, gibt meine Abfrage die von mir abgefragten Posts erfolgreich aus. $ Author_id hat bereits einen Wert, den ich nicht in dieses Code-Snippet aufgenommen habe. Ebenso habe ich die eigentliche Inhaltsausgabe in der while-Schleife ausgelassen, da dieser Teil nicht das Problem ist. Das Problem ist, dass ich den Inhalt, der bereits in diesem einzelnen Beitrag vorhanden ist, paginieren muss.
Der Zweck dieser Funktionalität bestand darin, Posts zu ermöglichen, benutzerdefinierte Autoren zu haben (außerhalb des eingebauten Benutzersystems), und der Zweck dieser Vorlage besteht darin, alle Posts für einen bestimmten Autor (der bereits funktioniert) auszugeben.
the_title()
'meta_value' => $author_idvon der genannten Dropdown-Liste ausgefüllt? Und wenn Sie jeden Autor über das Dropdown-Menü auswählen, werden die ersten zehn Beiträge korrekt angezeigt?
$author_query->have_posts()zurückkehrt trueund dass das $author_querytatsächlich irgendwelche Beiträge enthält?