WordPress : Comment puis-je obtenir le lien de la page suivante des articles ?

Publié par Jean-Michel le

Des fonctions telles que get_next_posts_link vous permettent d’obtenir le lien HTML vers la page suivante, avec peu de paramètres à modifier (étiquette et pages max). Je souhaite obtenir l’URL de la page suivante afin de pouvoir ajouter des classes personnalisées au lien.

Solution n°1 trouvée

Pourquoi créer le lien vous-même, alors que vous pouvez simplement ajouter la classe au résultat de get_next_posts_link()?

add_filter('next_posts_link_attributes','example_add_next_link_class');
function example_add_next_link_class($attr) {
  return $attr . ' class="example-class"';
}

Maintenant, le lien renvoyé par get_next_posts_link()contiendra votre classe.

Lire également:  Wordpress : Inclure automatiquement tous les fichiers php dans un répertoire de thème enfant

Solution n°2 trouvée

Alors que de nombreuses fonctions communes peuvent être trouvées sur le WordPress Codex, il existe également des fonctions non documentées dans le code source.

La fonction previous_posts est l’une de ces fonctions, qui est documentée dans la source :

Afficher ou retourner le lien de la page des articles précédents.

En utilisant previous_posts(false) , nous pouvons obtenir l’URL de la page précédente, sans l’afficher.

Lire également:  Wordpress : Utilisez-vous vraiment toutes ces options de thème WP ? Je ne pense pas

Cependant, cela ne vérifie pas s’il n’y a plus de pages et renverra des 404 s’il est utilisé seul.

En inspectant la source de get_next_posts_link , nous pouvons utiliser le code pour vérifier si nous avons atteint la limite de la page et renvoyer uniquement le lien :

/**
 * Gets the next posts link, checked against whether the page exists or not
 *
 * Returns the link or null if it doesn't exist
 */
function get_next_posts_url($max_page = 0) {
    global $paged, $wp_query;

    if ( !$max_page )
        $max_page = $wp_query->max_num_pages;

    if ( !$paged )
        $paged = 1;

    $nextpage = intval($paged) + 1;

    if ( !is_single() && ( $nextpage <= $max_page ) ) {
        return next_posts( $max_page, false );
    }
}
Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *