ツイート
シェア
LINEで送る
B! はてぶでブックマーク
Pocketでブックマーク
RSSフィード

WordPress, マルチサイトはプラグインに気を付けよう! DBエラーが起きることも。

wordpress image
イラストダウンロードサイト【イラストAC】
の画像をもとに加工しています。

WordPressのマルチサイトで各サイトの外観 -> メニューで追加、編集できなくなりました。

原因はCategory Order and Taxonomy Terms Orderプラグイン。マルチサイトでのプラグイン有効化にありました。

プラグインがマルチサイトに対応しているかがポイント。

原因の詳細とその対処方法です。

サブサイトのメニュー編集がおかしい ???

サブサイトのテーマでメニューを編集しようと、いつも通りにメニューを追加していきました。

ここでおかしなことが起きます。

まず、『外観 -> カスタマイズ -> メニュー』でメニューを作成しました。そして、別の画面に切り替えて再びメニュー設定画面に戻ると、さっき作成したメニューが表示されません。

設定前の状態に戻っていました。そして、『外観 -> メニュー』でメニューを新規追加してもその内容が画面に反映されません。さらに、メニューの編集ができなくなってしまいました。

よく見ると『位置の管理』タブもありません。

phpのログを見ると、データベースエラーが発生していました。

発生したデータベースエラー

phpのログ
WordPress database error Unknown column 't.term_order' in 'order clause' for query SELECT t.*, tt. * FROM wp_2_terms AS t INNER JOIN wp_2_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('nav_menu') AND t.name IN ('●●●') ORDER BY t.term_order ASC LIMIT 1 made by include('wp-blog-header.php'), include( 'wp-load.php'), include('/●●●/wp-config.php'), include('wp-settings.php'), do_action('wp_loaded'), WP_Hoo k->do_action, WP_Hook->apply_filters, WP_Customize_Manager->wp_loaded, do_action('customize_register'), WP_Hook->do_acti on, WP_Hook->apply_filters, WP_Customize_Nav_Menus->customize_register, wp_get_nav_menu_items, wp_get_nav_menu_object, g et_term_by, get_terms, WP_Term_Query->query, WP_Term_Query->get_terms

エラーの内容は、『wp_2_terms テーブルに term_order カラムがないから処理ができないよ?』でした。

原因はサブサイトのプラグインの有効化方法にある

ぼくはサブサイトを作成するときに、次の作業をしました。

  • すべてのプラグインを停止。
  • サイトネットワーク管理のプラグイン設定画面からすべてのサイトのすべてのプラグインを一括でまとめて有効化。

ここに落とし穴がありました。

Category Order and Taxonomy Terms Order プラグインは、データベースの wp_terms テーブルに term_order カラムを追加します。

しかし、さっきの方法ではサブサイトの wp_terms テーブル(wp_2_terms) にカラムが追加されませんでした。

対処方法

疑ったのは、

マルチサイトの有効化がおかしんじゃね?

データベーステーブルにカラムが追加されないということは、最初のプラグインの有効化では、DBテーブルにカラムが追加されないのでは?ということ。

そこでプラグインの有効化のやり方を変えました。

サブサイト作成時の最初のプラグインの有効化はサブサイト内で実行する

今度は、サブサイトそれぞれでプラグインを有効化しました。

  • ネットワーク管理の画面から Category Order and Taxonomy Terms Order プラグインを停止。
  • サブサイトのプラグイン設定画面からプラグインを有効化。

すると、wp_2_terms テーブルに term_order カラムが追加されました。

WordPressのマルチサイトで気を付けること。キャプチャ-01
サブサイトのデータベース内容
WordPressのマルチサイトで気を付けること。キャプチャ-02
親サイトのデータベース内容

まとめ

マルチサイトで作成したサブサイトの最初のプラグイン有効化は、それぞれのサイトで行わなければならないことがあります。

その後は、ネットワーク管理のプラグインでまとめて管理して問題ありません。

今回は、ひとつのプラグインで起きましたが、データベースを変更するプラグインは、同じバグが発生することがありえます。

おそらくプラグインの有効化の処理で、サイトネットワークからの有効化処理が不十分だったのでしょう。

マルチサイトでプラグインでバグが発生するのは『WordPressあるある』なので、そんなに驚くこともないです。

プラグインによっては、マルチサイト対応あり・なしを書いているので、『お前が気をつけろ!』と言われればそれまでですが...

前の投稿
WordPress 英語サイト作成時に翻訳ファイルが読み込めない
WordPressでAjaxを使う(管理画面 編)
次の投稿

WordPressの本

post-cta-image

たくさんあるなかで、WordPressの基本が学べる、目的別に学べる本を選びました。

  • WordPressの基本。
  • Webサイト作成から運用まで全体的に学ぶ。
  • かんたんなカスタマイズを学ぶ。
  • 何も分からないところから学ぶ。
  • WordPressからPHPプログラミングを学ぶ。

の5冊です。どうしてもネット上で調べて勉強するのが苦手という人におすすめです。

この内容をモノにすればほかの本は必要ありません。あとは自分の力で、書籍を使わずにインターネット上にある情報だけで学んでいけます。

コメントを残す

*