De nombreux plugins semblent ajouter un hook filtre/action à the_content
pour afficher les publications, les publicités, etc. Le problème est que ceux-ci apparaissent avant après la pagination, de sorte que la pagination est enfoncée plus bas.
Est-il possible d'afficher la post-pagination juste après le contenu? Il semble que wp_link_pages
ne peut être utilisé que dans la boucle.
Je suppose que vous avez:
the_content();
wp_link_pages();
dans votre fichier de thème. Vous pouvez donc plutôt essayer ce qui suit ( PHP 5.4+ ):
/**
* Append the wp_link_pages to the content.
*/
! is_admin() && add_filter( 'the_content', function( $content )
{
if( in_the_loop() )
{
$args = [ 'echo' => false ]; // <-- Adjust the arguments to your needs!
$content .= wp_link_pages( $args );
}
return $content;
}, 10 ); // <-- Adjust the priority to your needs!
puis ajustez les arguments et priority à vos besoins. Notez que le paramètre echo
est défini sur false, car nous devons renvoyer la sortie. Vous devez ensuite supprimer wp_link_pages()
de votre fichier de thème (enfant).
Si nous ne voulons pas supprimer manuellement la wp_link_pages()
supplémentaire, nous pouvons utiliser le filtre wp_link_pages
pour afficher uniquement la sortie, dans notre rappel de filtre the_content
:
/**
* Append the wp_link_pages to the content.
*/
! is_admin() && add_filter( 'the_content', function( $content )
{
if( in_the_loop() )
{
$args = [ 'echo' => false, '_show' => true ]; // <-- Adjust the arguments to your needs!
$content .= wp_link_pages( $args );
}
return $content;
}, 10 ); // <-- Adjust the priority to your needs!
/**
* Only display wp_link_pages() output when the '_show' argument is true.
*/
add_filter( 'wp_link_pages', function( $output, $args )
{
return ! isset( $args['_show'] ) || ! wp_validate_boolean( $args['_show'] ) ? '' : $output;
}, 10, 2 );
où nous avons introduit l'argument supplémentaire _show
à cette fin.