web-dev-qa-db-ja.com

プラグインがマルチサイト互換かどうかを知る方法は?

WordPressの管理者初心者として、私は最初の自動ではないWordPressのアップグレードを経験しました。

私は5つの異なるWordPressインストールを4.1.3から4.2にアップグレードしました。

それらはすべて1つのメインドメインと4つのアドオンドメインとして同じWebホスト上でホストされている異なるWebサイトを参照しています。

各Webサイトで、私は次のプラグインを使用します。

  • アキスメット
  • YoastによるGoogle Analytics。
  • グーグルアドセンス;
  • Google XMLサイトマップと
  • WordPress.comでJetpack。

さらなる管理を合理化するために、5つのインストールすべてを1つのマルチサイトインストールに統合することを検討します。

これまでのところ、これらの各プラグインとプラグインのWebサイト上のマルチサイトインストールとの互換性に関する明確な答えを見つけるのは非常に困難です。

プラグインのページはこれを探すのに適した場所ですか?

この情報を見つけることができる中心的な場所はありますか?

9
Alfred Myers

2種類のマルチサイト互換性があります。

  1. 受動的互換性:マルチサイト特有のことは何もせず、何も壊すことなく動作します。
  2. 能動的な互換性:マルチサイト特有の振る舞いを変更または拡張します。

私はあなたが1のために外出していると思います。私の WordCamp Prague 2015のスライド をご覧ください。

マルチサイトについて何も言わないプラグインは、ネットワークプラグインとして有効にしないでください。たとえばWooCommerceは、インストール中にいくつかのカスタムテーブルを作成します。ネットワーク全体で有効にした場合、サブサイトはこれらのテーブルを取得できず、空が頭の上に落ちます。

残念ながら、ほとんどのプラグインはアクティベーションタイプをチェックしないため、間違ったアクティベーションを許可しています。

関連するのは、管理者ポインタや、互換性のないプラグインの中のサブサイトをクリックする必要がある特別な "About"ページなどのUXの問題です。 YoastのWP SEOはその一例です 。これは近いうちにそのプラグインで修正されるでしょう、と私は思います。 :)

他の問題はあなたがそのマルチサイトで何をしているかによって異なります。各サイトが1つの言語で書かれていて、それらのサイトが互いに接続されている多言語Webサイトを構築している場合は、コンテンツを書くときに投稿を同期させます。つまり、フックsave_postswitch_to_blog()を呼び出し、接続されている投稿も保存するということです。 1つのリクエスト中にsave_postが複数回呼び出されるようになりました。多くのプラグインはそのような状況に気付いていないので、接続されている投稿の投稿メタ情報を上書きし、まだ最初の投稿に残っていると考えます。

Post metaを扱っていて、次のようなチェックがないプラグインを探してください。

if ( is_multisite() && ms_is_switched() )
    return FALSE;

これらのプラグインは互換性がありません。

プラグインがユーザーのメタフィールドに触れたり、ルールを書き換えたりする場合も同様です。

一部のプラグインは、ファイル名にサイトIDを含めずにファイルにコンテンツを書き込もうとします。それらもまた壊れている可能性が非常に高いです。

Tomが言ったように、テストインストールを作成し、想像できるすべてのユースケースを実行します。あなたはプラグインページを信頼することはできません、そして通常とにかく十分な情報がありません。

6
fuxia

互換性があるとプラグインが述べていない限り、ローカルマルチサイトインストールを作成してテストすることが唯一の信頼できる方法です。

時々あなたが探すことができる徴候があります、しかし、これらはいつも悪いコードの徴候です、例えば。 $wpdbの接頭辞を使うのではなく、データベースのテーブル名をハードコーディングする。その場合は、マルチサイトを使わなくてもプラグインを無視することをお勧めします。

2
Tom J Nowell