web-dev-qa-db-fra.com

Rediriger vers la page 2 après le commentaire

J'aimerais que les commentateurs se rendent à la page 2 d'un message paginé. Mes articles sont séparés par la balise <!--more--> donc j'ai les www.site.com/post-title et www.site.com/post-title/2/. Je souhaite que les utilisateurs visitent la deuxième partie du message après avoir commenté.

J'ai trouvé d'autres questions expliquant comment déplacer l'utilisateur vers le commentaire paginé, c'est-à-dire www.site.com/post-title/comment-page-x/#comment-x, mais pas vers les autres pages d'un message paginé.

Modifier: Mon site utilise le paramètre commun pour le permalien, à savoir wpinstallation/%postname%/. Lorsque paginé, il devient /%postname%/2/ pour la page 2.

Merci.

1
lu-bhz

Après avoir lu un peu sur regex et preg, en partant d'un exemple précédent d'un problème similaire et de le tester , j'ai pu répondre à ma propre question.

J'ai ajouté cette fonction à functions.php:

<?php
/** Plugin Name: WPSE (#167237) Redirect after comment */

add_filter('comment_post_redirect', 'redirect_after_comment');
function redirect_after_comment($location)
{
    return preg_replace("/comment-page-([\d]+)\/#comment-([\d]+)/", "2", $location);
}

Il remplace la partie de l'URL indiquant la page de commentaire et l'ancre de commentaire avec "2". Ce n'est peut-être pas la solution la plus propre, mais c'est ce que j'ai réussi à faire en tant que débutant.

2
lu-bhz