WordPress: マルチサイトはプラグインに気を付けよう!

  • -

    シェア
  • ---

    LINEで送る
  • -

    はてなブックマーク
    ブックマーク
  • -

    pocket
  • -

    rss
他言語サイト
us us
wordpress image

WordPressのマルチサイトでサブサイトの外観 -> メニューでメニューが追加できない、編集できない現象に見舞われました。

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

プラグインでデータベースを使うものは同じように何らかの誤動作が起きる可能性があると思われます。

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

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

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

ここでおかしな現象に見舞われます。

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

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

よく見ると、”位置の管理” タブもありません。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) にカラムが追加されていませんでした。

対処方法

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

最初に疑ったのは、データベーステーブルにカラムが追加されていないということは、最初のプラグインの有効化がおかしいということです。

ということで、ネットワーク管理の画面から Category Order and Taxonomy Terms Order プラグインを停止しました。

次に、サブサイトのプラグイン設定画面へ移動し、そこでプラグインを有効化しました。すると、wp_2_terms テーブルに term_order カラムが追加されました。

wordpress-menu-edit-err-01-min

サブサイトのデータベース内容

wordpress-menu-edit-err-02-min

親サイトのデータベース内容

まとめ

マルチサイトで作成されたサブサイトの最初のプラグイン有効化は、それぞれのサイトで行う必要があるときがあります。

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

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

おそらくプラグインの有効化の処理で、サイトネットワークからの有効化処理が不十分だったと思われます。

マルチサイトはプラグインでバグが発生するのは『Wordpressあるある』なので、その1つでしょう。

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

 

最近Webカテゴリでよく読まれている記事です。
post-cta-image
blog image

ドメイン取得の意味が分からない人へ。王道の方法を紹介します。

ドメインの登録業者を選ぶのに悩む必要はないです。サイトを簡単に早く公開するには全くいらないことで、むしろ邪魔です。『お名前.com』というサービスは必ず耳にします。そのお名前.comのメリットとデメリットと一緒に、ドメインの意味が分からない人が一番失敗しないドメインの取得方法を紹介します。

tadtadya.com

_

SNSでも記事を配信しています。
コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

この記事を気に入ったらぜひシェアも!!