自作のページネーション機能を実装しています。
タイトルにもある通り
自動補完リダイレクトを無効化して、元のページをそのまま表示したいです。
404ページでもありません。urlの形だけが変わり、ページはそのまま表示されるといった形にしたいです。
現状
・参考サイトをみてfunctions.phpに自動補完リダイレクト無効化する関数を追加したのですが、動作が変わらずといった状態です。
仮説
・関数自体は問題なく、関数の読み込みが怪しいと思っています
検証
・無効化する関数が読み込まれた時点でアラートが表示されるようにしました。下記記載
function call_test() { echo '<script>alert(\'関数読み込まれています!\')</script>'; } add_action('wp_head', 'call_test');
上記で、アラートが表示されなかった為関数の読み込みが怪しいと感じましたが仮説が尽きてしまいました。ちなみに関数の外からは呼び出せました。
参考サイト
参考1,似てる状況?
参考2
参考3
呼び出しメソッドの確認
記載全体
<?php function non_redirect_test( $redirect_url ) { // 関数の動作確認 function call_test() { echo '<script>alert(\'関数読み込まれています!\')</script>'; } add_action('wp_head', 'call_test'); if ( is_404() ) return false; return $redirect_url; } add_filter( 'redirect_canonical', 'non_redirect_test' );
なぜ関数がそもそも読み込まれていないのか、ミスをしてしまっていると思います。
どなたか知恵のある方居ましたら、教えていただきたいです。
よろしくお願いします。
wordpress 5.4.4
追記
以下を確認しました。
現状としては下記のようにurlは変わりますが、存在しないURLと判断されてホーム画面に戻されてしまいます。
https://hoge.com/photos/ -> https://hoge.com/photos/page_id=6
このホーム画面に戻される部分が、自動補完リダイレクトによって起きていると考えています。
これを防ぐために、redirect_canonicalフックを設定し防ごうと考えています。
使い方は下記です。
キャンセルには FALSEを返し、リダイレクトを許可するには $redirect_url を返す。
redirect_canonicalフックが効かず、ホームに戻されてしまう状態なので関数が読み込まれていないのかと仮説
↓
アラートを表示する形で試しましたが、表示されないといった状態です。
無効化のフックを設置していますが、ホームにリダイレクトされるタイミングで呼ばれないため、ホームに戻ってしまう。
redirect_canonicalフックが何らかの理由で呼べていない
上記が現状と今の理解になります。
あなたの回答
tips
プレビュー