web-dev-qa-db-fra.com

Comment puis-je changer la sortie de posts_nav_link ();

Je voudrais changer la sortie de posts_nav_link (); (Ou être dirigé dans une nouvelle direction, c'est bon pour moi) Ce que je veux faire, c'est montrer <Archive précédente | Archivepage suivante> même s'il n'y a pas de page précédente ou suivante, elle est supprimée, quel que soit le lien utilisé, je voudrais qu'elle affiche toujours le texte <précédent, afin que je puisse lui donner un style gris clair (désactivé). Espoir c'est logique.

J'ai essayé de créer une navigation personnalisée pour mes pages d'archives, mais cela ne fonctionnera pas.

 <h1>custom loop</h1>
 </div>
 <div class="col-md-12">

 <?php 
 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

 $args = array(
     'post_type'=>'post', // Your post type name
     'posts_per_page' => 6,
     'paged' => $paged,
 );

 $loop = new WP_Query( $args );
 if ( $loop->have_posts() ) {
     while ( $loop->have_posts() ) : $loop->the_post();

              // YOUR CODE
 the_id();
 echo '<br/>';
     endwhile;
 ?>
<div class="navigation"><p><?php posts_nav_link(); ?></p></div>

Sortie désirée:

< Previous archivepage | Next archivepage >
1
DGRFDSGN

posts_nav_link() affiche simplement get_previous_posts_link() et get_next_posts_link() avec un séparateur entre eux. La chose utile est de gérer la visibilité du séparateur selon que les deux pages existent ou non. Puisque vous voulez toujours montrer quelque chose des deux côtés, vous n'en avez pas besoin. Ce que vous pouvez faire, c'est générer manuellement les liens suivant et précédent, mais avec une vérification pour voir s'il existe un lien. S'il n'y en a pas, vous pouvez générer une étendue à la place.

Cela ressemblerait à ceci:

if ( get_previous_posts_link() ){
    previous_posts_link( 'Previous' );
} else {
    echo '<span aria-hidden="true">Previous</span>';
}

echo '|';

if ( get_next_posts_link() ){
    next_posts_link( 'Next' );
} else {
    echo '<span aria-hidden="true">Next</span>';
}

Vous pouvez maintenant appeler <span> comme lien inactif.

Notez que j'ai utilisé aria-hidden="true" pour dire aux lecteurs d'écran d'ignorer le texte des "liens" inactifs en tant qu'accessibilité.

1
Jacob Peattie

La fonction posts_nav_link() accepte 3 arguments.

<?php posts_nav_link( $sep, $prelabel, $nextlabel ); ?> 

Vous pouvez définir le $sep sur '|' et modifier les étiquettes suivantes et précédentes. Il n'est pas nécessaire de générer la navigation dans les deux sens séparément.

0
Jack Johansson