質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.77%

wordpress管理画面の並び替えリンクが、URL変更前のままで直らない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 843

bellrey

score 14

イメージ説明

環境

WordPress 5.0.2(※WhatsRunで見ると4.1.25と表示される)
PHP 5.3.3
Nginx 1.14.1

困っていること

wordpressのURL変更を行いましたが、管理画面内の投稿一覧ページに古いURLが残り投稿のソートができずに困っています。

変更前アドレス:https://japan.example.com/
変更後アドレス:https://www.example.com/japan/

タイトル部分など赤く囲った部分のアドレスがhttps://japan.example.com/japan/wp-admin/edit.php?orderby=title&order=ascなどとなってしまい、404エラーとなります。
手作業でhttps://www.example.com/japan/wp-admin/edit.php?orderby=title&order=ascとしてやることにより表示することは可能です。

URLを一括置換したので、DB内を古いURLで検索かけても該当箇所が見つからず困っています。

エラー箇所(古いURLが残っている)

管理画面 投稿一覧のソート用リンク(タイトル・日付・last modified)
管理画面 固定ページ一覧のソート用リンク(タイトル・日付・last modified)
管理画面 コメント一覧のソート用リンク(作成者・コメント先・投稿日時)

正常な箇所(新URLになっている)

・投稿一覧 投稿タイトルのリンク
・投稿一覧 すべて・所有・公開済み・非公開のリンク
・メディアライブラリ内のリンク

やったこと

・設定>一般の WordPress アドレス、サイトアドレスの書き換え
Database Search and Replace Script in PHPを使い、DB内のURL書き換え
・プラグインの全無効化
・カスタマイズしていないテーマ差し替え

やってないこと

・リバースプロキシ関連
・htaccess関連


今まで100以上のサイトを作りましたが、同様のトラブル経験がないため途方に暮れています。
解決策ありましたらご教示いただけますと幸いです。
よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    退会済みユーザー

    2019/01/07 18:45

    URLを一括置換した際は「https://」をつけずに「japan.hogehoge.jp」から「www.hogehoge.jp/japan」へ置換しましたか?

    キャンセル

  • bellrey

    2019/01/07 19:04

    付けずに置換しています。

    キャンセル

回答 2

+2

まずは、

1) プラグインを全て無効にして、発生するか確認する。
2) カスタマイズししていない WordPress 標準テーマで、発生するか確認する。

の情報を記載して欲しいところですが...


どこで URL が設定されているか WordPress のソースコードを検索してみると「投稿」や「固定ページ」一覧画面の見出しのリンクを作成している部分は、print_column_headers() の

$column_display_name = '<a href="' . esc_url( add_query_arg( compact( 'orderby', 'order' ), $current_url ) ) . '"><span>' . $column_display_name . '</span><span class="sorting-indicator"></span></a>';

で作成しているようです。

上記の中で、URL を組み立てている部分は、 add_query_arg( compact( 'orderby', 'order' ), $current_url ) ) の部分で、 $current_url に orderby=$order のパラメータを追加して URL を組み立てています。
( 関数の意味は、関数リファレンス/add_query_arg や PHP マニュアル 関数リファレンス compact 参照 )

そこで、$current_url のサーバー名をどこで指定しているのか探すと関数の先頭に下記のような記載があり、$_SERVER['HTTP_HOST'] を使用して URL を作成しています。
( 関数の意味は、set_url_scheme 参照)

$current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );

ということで、$_SERVER['HTTP_HOST'] が影響しているようですが、お使いの環境の $_SERVER['HTTP_HOST'] は、どうなっていますか?
var_dump($_SERVER) や phpinfo() 等で確認してみてください。


最後に、質問に記載されたドメイン名は所有者がいますので、ご自身が所有されていない場合は「例示用に用意されているドメイン名( example.com / example.net / example.jp 等)」を使ってください。( 例示用ドメイン名については、http://www.atmarkit.co.jp/fwin2k/win2ktips/801exampledom/exampledom.html や 例示に使用可能なドメイン名はありませんか? 等を参照してください。)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/09 12:41

    >1) プラグインを全て無効にして、発生するか確認する。
    >2) カスタマイズししていない WordPress 標準テーマで、発生するか確認する
    上記2点は試してみましたが、改善されませんでした。

    $_SERVER['HTTP_HOST']について調べてみます。

    キャンセル

check解決した方法

0

原因はリバースプロキシでした。
こちら調整後、正常動作となりました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.77%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る