Let's create! WordPressサイト制作とメンテ/エラー対応から、PHP/CSS/javascriptプログラミング、動画・音・イラスト等制作まで扱うコラム

WPサイト接頭辞エラーまとめ~configやテーブル名変更・usermeta内の項目で、接頭辞不一致の場合

更新: 2024/02/12 2486文字

WPサイト接頭辞エラーまとめ~configやテーブル名変更・usermeta内の項目で、接頭辞不一致の場合

今回は、管理人がお仕事でWPサイトお引っ越しをしたときに遭遇したケースについてです。WPサイト接頭辞についてです。 データベースの状況的に『テーブル接頭辞』を変更する形になりましたが、単純に接頭辞名だけ変更すればよいわけではなかったです。ログインなどにも影響するので、その状況含めて、エラーになるケースなどもまとめてみていきましょう。

WPのテーブル接頭辞とは?

例えば、WPのインストールするときとか…

wp-config.phpでデータベース接続設定に使う、アレですね。データベースを区別する名前みたいなものです。『データベース1個につき、アプリケーション1個』みたいな使い方をしていると、あまり気にならないかもしれません。

しかし、『1データベースに2つ以上WPのデータが入っている』ケースでは、接頭辞で区別する必要が出てきます。例えば、『○○(接頭辞)_options』というテーブルがありますが、2つ同じ名前のテーブルがあると、どっちからデータ抜いてよいかわからなくなります。

住所で例えると『青葉区・泉区』がテーブル名だとしたら『横浜市・仙台市』が接頭辞みたいなものです。郵便だったら○○区から書いても届くかもしれませんが、データベースはそうはいきません(笑)

WPのテーブル接頭辞が一致しないことによるエラー、いろいろ紹介

ここでは、お引越しなどで触れた、WPテーブル接頭辞変更に関わるエラーをご紹介。いくつか、管理人のテスト環境で行ってみました。ちょっと間違えただけで、サイト表示に関わる致命的エラーになることもあるので、ぜひ押さえておいてください。

wp-config.phpの接頭辞が違う→データが全く入っていないので、再インストール・設定画面に(wp5.5)

デフォルトの状態で『wp01_』になっていた接頭辞。wp-config.phpの接続情報で、わざと02に変えてみます。

記事やユーザーデータが入っているのは『wp01_』のテーブルなので、wp02にした場合は何も入っていません。wp5.5の環境でしたが、再インストール&初期設定みたいな状態になってしまいました。

〇〇(接頭辞)_postsテーブルの接頭辞が違う→データベース接続エラーで記事が出ない

ここら辺は、接頭辞を変えるときは、一気にそろえてしまうと思います。忘れるとヤバいことに。たとえば記事が入っている、〇〇(接頭辞)_postsテーブルを違うものにすると・・・

テーマはかろうじて表示していますが、データベース接続エラーで記事が出てこなくなります。(デバッグモードをonにしているので、派手に表示が出てきます。エラー内容を調べたいときはおすすめです)

〇〇(接頭辞)_usermetaテーブルの接頭辞が違う→ログインすらできません

次は『〇〇(接頭辞)_usermetaテーブル』も違うものにしてみます。このテーブルは、ユーザーのニックネームや管理画面の設定・権限などの情報が入っています。

ログイン情報と紐付けられているみたいですね~。『usermetaテーブルがありません』とエラー表示が出て、ログインすらできませんでした

usermetaテーブルのmeta_key:〇〇(接頭辞)_capabilitiesが違う→管理画面にアクセスする権限がありません

usermetaテーブルの接頭辞だけ合わせればよいというわけではありません。meta_keyの名前にも、接頭辞名が絡んでいるものがあるからです〇〇(接頭辞)_capabilitiesがその一例。meta_valueの値はa:1:{s:13:”administrator”;b:1;}のように入っています。ユーザーidと紐付けられていて、『administrator→管理者ですよ』という情報です。ここが違っていると・・・

パスワードは入れられますが、トップページにリダイレクト。『wp-admin』に入ろうとすると『ページにアクセスする権限がありません』の表示が出ます。これではいつまでたってもサイトを編集できません。管理画面に入れなくても、データベースとFTPで編集する人がいるかもしれませんが(笑)

〇〇(接頭辞)_optionsテーブル・option_name:〇〇(接頭辞)_user_rolesが違う→こちらも管理画面アクセス不可

管理人もトラブル時はお世話になっている、〇〇(接頭辞)_optionsテーブル。siteurl・home・blogname・description・管理者メルアド・1ページあたり何記事表示・日付フォーマットなどの情報が入っています。option_name:〇〇(接頭辞)_user_rolesの場合も、権限などの一覧が入っており、上記の〇〇(接頭辞)_capabilitiesが違う場合と同様に、管理画面にアクセスすることができなくなります

あとがき・まとめ

  • WPのデータベースを住所で例えると『青葉区・泉区』がテーブル名だとしたら『横浜市・仙台市』が接頭辞みたいなもの
  • 移転などで接頭辞を変更する場合、単純にデータベースのテーブル名接頭辞だけを変更すればよいというわけではない
  • 接頭辞が違うだけで、致命的なエラーになるので、覚えておくとベター

まとめるとこのようなところでしょうか。『データベース1個につき、アプリケーション1個』の使い方のときは変更しないことのほうが多いでしょう。しかし、セキュリティ上運営を始めてから変えたりとか、サイト引っ越し時に変えたりというケースがありますので、上記の内容を押さえていただければ、対処がしやすいと思います。


【カテゴリ】- サイトエラー対策と復旧
【タグ】- ,

関連記事