web-dev-qa-db-fra.com

Contenu uniquement sur la dernière page, si la page est paginée

Je souhaite afficher un bouton de don après le message et sur la dernière page de messages paginés. Bien que mon code fonctionne totalement, ce n'est probablement pas la meilleure façon de le faire. Quelqu'un a-t-il une solution plus élégante? Comme le contenu (le bouton de don) est exactement le même, il n’est pas nécessaire d’appeler ce bloc HTML deux fois. Je vous remercie!

global $multipage, $numpages, $page;
if( $multipage && $page == $numpages ) { ?>
Content (on the last page of a paginated post)
<?php }  
if ($multipage == 0) { ?>
Content
<?php } ?>
2
user2516117

Au lieu d'utiliser directement les variables globales, voici une manière d'utiliser le filtre content_pagination pour ajouter du code HTML personnalisé à la dernière page de contenu:

/**
 * Append HTML to the last content page, if it's paginated 
 */
add_filter( 'content_pagination', function( $pages )
{
    if( count( $pages ) > 1 )
        $pages[count($pages)-1] .= '<div>MY HTML HERE!</div>';

    return $pages;
} );

Cela ajoute le code HTML personnalisé à toutes les dernières pages de contenu, où il y a pagination de contenu.

Mise à jour: Pour inclure des publications sans pagination de contenu, nous pouvons par exemple. remplacez > 1 par > 0.

2
birgire