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?
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.
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