Quelqu'un a mis cela en œuvre avec succès Je veux inclure le <!--nextpage-->
dans une boucle de publication unique en tant que shortcode. J'ai essayé de faire écho à cela, le tag apparaît mais la publication n'est pas divisée en pages.
Je dois pouvoir faire écho à do_shortcode('[nextpage]');
dans le single.php
et le diviser en plusieurs pages ...
the_posts
:Voici une idée utilisant le filtre the_posts
, qui se déclenche avant que setup_postdata()
ne soit activé:
/**
* Replace [nextpage] with <!--nextpage--> through the 'the_posts' filter.
*
* @see http://wordpress.stackexchange.com/a/183980/26350
*/
! is_admin() && add_filter( 'the_posts', function( $posts )
{
$posts = array_map( function( $p )
{
if ( false !== strpos( $p->post_content, '[nextpage]' ) )
$p->post_content = str_replace( '[nextpage]', '<!--nextpage-->', $p->post_content );
return $p;
}, $posts );
return $posts;
});
La raison pour laquelle votre approche ne fonctionne pas, c'est que votre shortcode [nextpage]
est généré après que la fonction setup_postdata()
, qui gère la pagination de la publication, a vérifié la présence de <!--nextpage-->
dans le contenu de la publication.
Ici, je le teste avec quelques WordPress Lorem Ipsum :
avec la sortie suivante au début du thème par défaut TwentyFifteen :