web-dev-qa-db-fra.com

Comment ignorer ou désactiver le tag nextpage?

J'ai ce site qui utilise la balise <!--nextpage--> dans les publications à des fins de pagination. Je veux désactiver la pagination, mais sans supprimer les balises de la base de données (ils voudront peut-être les utiliser à nouveau ultérieurement).

J'ai essayé de supprimer wp_link_pages(); du modèle, mais il ne montrerait alors que le contenu de la première page sans les liens - je ne sais pas si c'est comme cela que cela devrait fonctionner ou si quelque chose ne va pas.

Comment puis-je faire en sorte que wordpress ignore simplement <!--nextpage--> et affiche l'intégralité du message en une fois?

1
Lucian Davidescu

Vous pouvez essayer d'utiliser le filtre the_post pour remplacer la pagination du contenu, qui a lieu dans la fonction setup_postdata() (PHP 5.4 +):

/**
 * Ignore the <!--nextpage--> for content pagination.
 * 
 * @see http://wordpress.stackexchange.com/a/183587/26350
 */

add_action( 'the_post', function( $post )
{
    if ( false !== strpos( $post->post_content, '<!--nextpage-->' ) ) 
    {
        // Reset the global $pages:
        $GLOBALS['pages']     = [ $post->post_content ];

        // Reset the global $numpages:
        $GLOBALS['numpages']  = 0;

       // Reset the global $multipage:
        $GLOBALS['multipage'] = false;
    }

}, 99 );

ignorer la fonctionnalité <!--nextpage-->.

La variable globale $pages contient le contenu paginé:

$pages = explode('<!--nextpage-->', $content);

c'est pourquoi nous devons le restaurer à:

$pages = array( $post->post_content );

En réalité, nous n'avons pas besoin de restaurer la variable $numpages, mais nous le faisons dans le cadre du nettoyage de la maison. Si nous ne restaurions que $pages et $numpages=0, nous aurions:

<div class="page-links">Pages:</div>    

La fonction wp_link_pages()vérifie si le $multipage global est vrai pour afficher le résultat de la pagination du contenu. C'est donc la variable à définir sur false pour supprimer toute la sortie. Nous pourrions également utiliser le filtre wp_link_pages pour le supprimer.

2
birgire

Essayez de mettre <?php $GLOBALS['multipage'] = false; ?> dans votre boucle. si ne montre pas la pagination dans le mobile:

wp_is_mobile()
$GLOBALS['multipage'] = false;

J'espère que cela vous sera utile

0
SatuWeb