web-dev-qa-db-ja.com

コメント後に2ページ目にリダイレクトする

ページ付けされた記事の2ページ目にコメンターがいることを望みます。私の投稿は<!--more-->タグで区切られているので、www.site.com/post-titlewww.site.com/post-title/2/があります。コメントしてから、ユーザーに投稿の後半部分にアクセスしてもらいたいです。

ページ付けされたコメント、つまりwww.site.com/post-title/comment-page-x/#comment-xにユーザーを移動する方法を説明する他の質問を見つけましたが、ページ付けされた投稿の他のページには移動しません。

編集:私のサイトはwpinstallation/%postname%/というパーマリンクのための共通設定を持っています。ページ番号が付けられている場合は、2ページ目で/%postname%/2/になります。

ありがとう。

1
lu-bhz

似たような問題をテストする前の例から始めて、正規表現とpregについて少し読んだ後 自分の質問に答えることができました。

この関数を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);
}

コメントページとコメントアンカーを記述しているURLの部分を "2"に置き換えます。それは最もきれいな解決策ではないかもしれませんが、それは私が初心者としてやることができた方法です。

2
lu-bhz