Créer une pagination sur WordPress

Je trouve la navigation de base sur WordPress assez fouillis  En effet, passer de page en page pour retrouver un article n’est pas des plus pratique et je voulais pouvoir remonter de plusieurs pages d’un coup sans avoir à modifier l’adresse dans la barre du navigateur.

Ainsi, esprit WordPress oblige, j’ai cherché un plugin qui me permettrait ça. J’en ai trouvé deux que j’ai jugé digne d’intérêt. WP-Paginate et Simple Pagination. Tous les deux facilement configurables, l’étape la plus embêtante était de le intégrer dans la page.

Pour ce faire, il faut aller modifier le style des pages dans le menu Appearance -> Editor de WordPress ou à la main directement dans les fichiers. L’emplacement à modifier va dépendre du thème utilisé. Utilisant le thème TwentyEleven, la fonction d’affichage se trouve dans le fichier functions.php dans la fonction twentyeleven_content_nav. D’autres thèmes utilisent un fichier loop.php.

Afin de ne pas créer de bug si le plugin se trouvait désactivé pour une raison ou une autre, il suffit de rajouter une vérification de présence de la fonction au lieu de remplacer l’affichage. On aura ainsi une fonction qui ressemblera à ceci :

function twentyeleven_content_nav( $nav_id ) {
    global $wp_query;

    if (function_exists('<FONCTION DU PLUGIN>')) {
        <FONCTION DU PLUGIN>();
    }
    else {
        if ( $wp_query->max_num_pages > 1 ) : ?>
            <nav id="<?php echo $nav_id; ?>">
                <h3 class="assistive-text"><?php _e( 'Post navigation', 'twentyeleven' ); ?></h3>
                <div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Older posts', 'twentyeleven' ) ); ?></div>
                <div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'twentyeleven' ) ); ?></div>
            </nav><!-- #nav-above -->
        <?php endif;
    }
}

La <FONCTION DU PLUGIN> peut être : wp_simple_pagination pour Simple Pagination ou wp_paginate pour WP-Paginate.

Les deux plugins permettent de faire la même chose avec les commentaires mais cette fonctionnalité m’intéresse beaucoup moins donc je ne l’ai pas mise en place. La procédure reste cependant la même mais dans le fichier comments.php autour des deux lignes contenant les fonctions previous_comments_link() et next_comments_link().

Ma préférence va actuellement à Simple Pagination pour son template de base qui s’intègre mieux dans ma page sans avoir à la retoucher mais les deux barres de navigation sont personnalisables.

Laisser un commentaire