J'essaie de prévisualiser mon article de blog qui a <!--nextpage-->
mais en cliquant sur l'une des autres pages, vous revenez simplement à la page d'accueil.
Il y avait un vieux fil qui n'avait jamais été résolu il y a 4 ans https://wordpress.org/support/topic/nextpage-doesnt-work-on-preview?replies=3
L'URL lorsque je fais un aperçu ressemble à ceci
https://www.trajano.net/?p=1569&preview_id=1569&preview_nonce=c1ab9c2efc&post_format=standard&_thumbnail_id=-1&preview=true
Tout va bien, mais une fois que je clique sur une page, cela se produit:
https://www.trajano.net/?p=1569%2F2%2F&preview_id=1569&preview_nonce=c1ab9c2efc&preview=true
Notez que le numéro de page est injecté après ?p=1569
comme ?p=1569/2/&preview...
s'il a été décodé.
Il y a un bogue concernant la pagination de contenu links ne fonctionnant pas lors de la prévisualisation de planifiéposts ou de pages.
Voir ticket # 32295
Il existe déjà un correctif proposé qui ajoute la vérification d'état future
manquante dans la fonction d'assistance _wp_link_page()
, qui génère les liens de pagination de contenu.
Nous pourrions par exemple construire un correctif rapide comme:
add_filter( 'preview_post_link', function( $link, $post )
{
if( ! is_admin() && is_preview() && 'future' === get_post_status( $post ) )
$link = preg_replace( '~p=(\d+)%2F(\d+)%2F~', 'p=$1&page=$2', $link );
return $link;
}, 10, 2 );
ou utilisez le filtre wp_link_pages_link
:
add_filter( 'wp_link_pages_link', function( $link, $i )
{
if( $i > 1 && 'future' === get_post_status( get_the_ID() ) && is_preview() )
$link = preg_replace( '~p=(\d+)%2F(\d+)%2F~', 'p=$1&page=$2', $link );
return $link;
}, 10, 2 );