j'ai créé une page d'auteur personnalisée qui répertorie le titre de leurs messages. mais le problème est que je ne parviens pas à faire fonctionner la pagination si elle dépasse la valeur définie par page. J'ai utilisé get_posts () pour sa boucle personnalisée.
<?php
$ppp = 5; //set my custom number of post to appear
$uid = $curauth->ID;
$args = array(
'numberposts' => $ppp,
'author' => $uid
);
$authorposts = get_posts($args);
//print_r($authorposts);
if ( count( $authorposts ) > 0 ) {
foreach ( $authorposts as $post ): setup_postdata($post) ?>
<li>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>" class="authorpostlink"><?php the_title(); ?></a>
<?php the_excerpt(); ?>
</li>
<?php endforeach; ?>
<div class="post-nav">
<div class="previous"><?php previous_posts_link('‹ Previous Page') ?></div>
<div class="next"><?php next_posts_link('Next Page ›') ?></div>
</div>
<?php
} else {
echo '<p>No articles by this user</p>';
}
?>
Cela devrait afficher 5 messages avec son titre et un extrait de l'auteur, .... mais le reste des messages de l'auteur n'est pas paginé. Le nombre total de messages publiés sur le blog est paginé.
Placez le code suivant dans votre fichier functions.php
.
function limit_posts_per_page() {
if ( is_author() ) // you can limit other pages as well ( i.e. is_archive() ), if need be.
return 5;
}
add_filter( 'pre_option_posts_per_page', 'limit_posts_per_page' );
Assurez-vous que vous utilisez le modèle author.php
, sinon cela ne fonctionnera pas. Veuillez consulter le author.php
de vingtten pour connaître les meilleures pratiques.