ユーザーアクセスと機能

設計上、ネットワークに追加されたすべてのユーザーは、ネットワーク内のすべてのサイトサブスクライバーアクセスを持ちます。個々のサイトのユーザーに異なるデフォルトの役割を割り当てるには、プラグインを使用する必要があります。

サイト管理者の役割の機能は、WordPressネットワーク内では制限されています。サイト管理者は新しいテーマやプラグインをインストールできず、サイト上のユーザーのプロフィールを編集することもできません。これらのタスクを実行できるのは、ネットワーク管理者(別名スーパ管理者)だけです。

サブフォルダーインストールのパーマリンク

パーマリンクは引き続き機能しますが、メインサイト(つまり、最初に作成されたサイト)にはblogの追加エントリがあり、URLはdomain.com/blog/YYYY/MM/POSTNAMEのように表示されます。

これは設計上のもので、サブフォルダーインストールとの衝突を防ぐためです。現在のところ、これを変更する簡単な方法はなく、そうするとWordPressがメインサイトとサブサイト間の衝突を自動的に検出できなくなります。これは将来のWordPressのバージョンで対処され、カスタマイズ可能になります。

また、blogプレフィックスは、基本アドレスの下で直接アクセス可能な静的ページには使用されないことに注意してください。例:domain.com/PAGENAME。ネットワーク上の他の既存サイトの名前で最初のサイトに静的ページを作成しようとすると、そのページのパーマリンクにはサフィックスが付加されます(例:domain.com/PAGENAME-2)。既存の静的ページのスラッグで新しいサイトを作成すると、その静的ページにはアクセスできなくなります。これを防ぐために、静的ページの名前をブラックリストに追加して、その名前のサイトが作成されないようにすることができます。

アップロードファイルパス

新しいインストールの最初のサイトでは、アップロードされたファイルは従来の場所である/wp-content/uploads/に配置されますが、ネットワーク内のその後のサイトは、データベースによって指定されたサイト番号に基づく独自のサブフォルダー内の/wp-content/uploads/sites/フォルダーに配置されます。これらのファイルは、そのURLを介してアクセス可能です。

これは、Multisite 3.0-3.4.2からの変更です。サブサイトの画像は/wp-content/blogs.dir/に保存され、https://example.com/files/やhttps://example.com/sitename/filesなどに表示されていました。3.5より古いMultisiteインストールから始めた場合、画像が`````/files/`````のURLで表示されるのは*エラーではありません*。

WPのバージョンに関係なく、これらの場所はサイト管理者によって変更できません。サイト設定ページで変更できるのはネットワーク管理者のみです。ms-files.phpがどのように.htaccessと連携して機能するかを理解せずにこれを変更することは推奨されません。そうしないと、機能しなくなる可能性があります。/files/のURLが機能しない場合は、サーバー上の.htaccessまたはhttpd.confファイルの設定ミスを示しています。

プラグイン

プラグインは、ネットワーク全体での実装に応じて追加の柔軟性を持つようになりました。すべてのプラグインはネットワークダッシュボードのプラグインページにインストールされ、サイトごとまたはネットワーク全体でアクティブ化できます。

  • サイト特有のプラグイン:これらのプラグインは、特定のサイトのプラグインページ内からアクティブ化されます。一部のプラグイン(例えば、コンタクトフォーム)は、単一サイトでアクティブ化されると最も効果的です。これにより、データと設定がその単一サイトのデータベーステーブルに保存され、ネットワーク全体のテーブルには保存されません。単一サイトでアクティブ化/非アクティブ化されるWordPressプラグインは、プラグインディレクトリに保存されます。
  • ネットワークプラグイン:ネットワーク管理者は、ネットワーク管理ダッシュボードでプラグインを「ネットワークアクティブ化」できます。「ネットワークアクティブ化」されると、プラグインはすべてのサイトでアクティブになります。「ネットワークアクティブ化」されたプラグインは、個々のサイトのダッシュボードのプラグインリストで「ネットワークアクティブ」として表示されます。一部のプラグインは、ネットワークアクティブ化されている場合にのみマルチサイト環境で機能します。ネットワークアクティブ化されたWordPressプラグインもプラグインディレクトリに保存されます。
  • 必須プラグイン:ネットワーク全体のすべてのサイトで使用されるプラグインは、mu-pluginsディレクトリに単一ファイルとしてインストールするか、サブフォルダーを含むファイルとしてインストールできます。フォルダー内のファイルは読み取られません。これらのファイルはアクティブ化または非アクティブ化されることはなく、存在する場合は使用されます。これらのプラグインは、サイトごとのプラグインリストから完全に隠されています。

リポジトリ内のすべてのプラグインがマルチサイト環境で機能するわけではありません。特定のプラグインがマルチサイトネットワークで機能するかどうかについては、プラグインのリポジトリページを参照するか、開発者にお問い合わせください。

単一サイトの管理者が自サイトのサイト特有のプラグインをアクティブ化/非アクティブ化できるようにするには、ネットワーク管理者の設定メニューから単一サイト管理者用のプラグインページを有効にする必要があります(「メニュー設定」)。ネットワーク管理者は常にすべてのサイトのプラグインにアクセスできます。単一サイトの管理者は、ネットワークアクティブ化されていないプラグインをアクティブ化および非アクティブ化できますが、ネットワークアクティブ化されたプラグインは「ネットワークアクティブ」として表示され、非アクティブ化や設定のオプションはありません。

単一サイトのプラグインを一括でアクティブ化/非アクティブ化するのに役立つプラグインもあります。

テーマ

すべてのテーマはネットワーク全体にインストールされます。1つのテーマのコードを編集すると、そのテーマを使用しているすべてのサイトに対して編集されます。各サイトが他のサイトに影響を与えずに独自のCSSを調整できるようにするために、プラグインWP Add Custom CSSをインストールできます。また、個々のサイトはテーマカスタマイザーを使用でき、その設定はそのサイトのテーブルにのみ保存されます。

テーマを「ネットワークアクティブ化」しても、各サイトのアクティブテーマにはならず、単にすべての個々のサイトでアクティブ化できるようになります。単一サイトのダッシュボードでアクティブ化可能であるためには、テーマはネットワークアクティブ化されるか、ネットワーク管理者 – サイトを編集 – テーマタブで有効にされる必要があります。テーマが単一サイトでアクティブ化された後は、単一サイトに残っている限り、ネットワークで非アクティブ化できます。

デフォルトでは、WordPressはすべての新しいサイトに最新の「Twenty …」をテーマとして割り当てます。これは、define('WP_DEFAULT_THEME', 'classic');のような行をwp-config.phpファイルに追加することでカスタマイズできます。ここで「classic」はテーマのフォルダー名に置き換えられます。

カテゴリとタグ

グローバル用語(すなわち、ネットワーク内のサイト間でタグやカテゴリを共有すること)は、WordPress 3.0では利用できません。プラグインを使用して、ポータル/フロントページやネットワーク内の特定のページまたはサイトにグローバルタグを組み込むことで、マイクロカテゴリ化されたコンテンツに基づいてナビゲーションを向上させることができます。

サイト間のコンテンツ共有

ネットワークのサイトは、デフォルトではコンテンツを共有しない別々のサイトです。ネットワークをWordPress.comのミニバージョンと考えてください。サイト間でコンテンツを共有するのに役立つプラグインがいくつかあります。このプラグインのように

ネットワークタイプの切り替え

ドメインベース(サブドメイン)とパスベース(サブディレクトリ)のMultisiteインストール間で切り替えることが可能です。単一サイトにWordPressがインストールされてから1か月以上経過している場合、そのサイトをネットワークにアクティブ化しようとすると、サブドメインサイトを使用するように指示されます。これは、ページ(例:example.com/pagename)とサイト(例:example.com/sitename)間の衝突がないことを確認するためです。この問題が発生しないと確信している場合は、初期設定が完了した後に変更できます。

  1. ``````bash
  2. define( 'SUBDOMAIN_INSTALL', true );
  3. `

パスベースのネットワーク(サブディレクトリインストール)の場合

  1. define( 'SUBDOMAIN_INSTALL', false );

.htaccessも新しいセットアップに変更する必要があります。ネットワーク管理者 – 設定 – ネットワークセットアップに移動して新しい.htaccessルールを見つけるか、以下を参照してください。

設定要件に従って、127.0.0.1またはlocalhostで実行している場合、サブディレクトリからサブドメインに切り替えることはできません。これにより、クッキー処理のためにルートサイトでreauth=1の無限ループが発生する可能性があります。

ApacheバーチャルホストとMod Rewrite

Apacheバーチャルホスト内でmod_rewriteを機能させるには、DocumentRootにいくつかのオプションを設定する必要がある場合があります。

  1. <VirtualHost *:80>
  2. ...
  3. DocumentRoot /var/www/vhosts/wordpress
  4. <Directory /var/www/vhosts/wordpress>
  5. AllowOverride Fileinfo Options
  6. </Directory>
  7. ...
  8. </VirtualHost>

場合によっては、すべてのhtaccessルールが尊重されるように、AllowOverrideにAllを追加する必要があります。

.htaccessとMod Rewrite

「醜い」パーマリンクで動作できる単一サイトのWordPressとは異なり、マルチサイトはサブサイトのURLをフォーマットするためにその使用を必要とします。これには、.htaccessファイルの使用が必要であり、サブフォルダーまたはサブドメインを使用している場合は、その形式がわずかに異なります。以下の例は、WordPressがウェブサイトのルートフォルダーにインストールされている場合のWordPressサブフォルダーおよびサブドメインの標準の.htaccessエントリです。WordPressが独自のフォルダーにある場合は、RewriteBaseの値を適切に変更する必要があります。

これらはであり、ほとんどのインストールで機能しますが、すべてのインストールで機能するわけではありません。

サブフォルダーの例

WordPress 3.0から3.4+

  1. # BEGIN WordPress
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteRule ^index.php$ - [L]
  5. # アップロードファイル
  6. RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
  7. # /wp-adminにトレーリングスラッシュを追加
  8. RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
  9. RewriteCond %{REQUEST_FILENAME} -f [OR]
  10. RewriteCond %{REQUEST_FILENAME} -d
  11. RewriteRule ^ - [L]
  12. RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
  13. RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
  14. RewriteRule . index.php [L]
  15. # END WordPress

WordPress 3.5+ これは、3.5でMultisiteを開始した場合のみ使用してください。3.4から3.5にアップグレードした場合は、古いものを使用してください!

  1. # BEGIN WordPress
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteRule ^index.php$ - [L]
  5. # /wp-adminにトレーリングスラッシュを追加
  6. RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
  7. RewriteCond %{REQUEST_FILENAME} -f [OR]
  8. RewriteCond %{REQUEST_FILENAME} -d
  9. RewriteRule ^ - [L]
  10. RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
  11. RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
  12. RewriteRule . index.php [L]
  13. # END WordPress

サブドメインの例

WordPress 3.0から3.4+

  1. # BEGIN WordPress
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteRule ^index.php$ - [L]
  5. # アップロードファイル
  6. RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]
  7. RewriteCond %{REQUEST_FILENAME} -f [OR]
  8. RewriteCond %{REQUEST_FILENAME} -d
  9. RewriteRule ^ - [L]
  10. RewriteRule . index.php [L]
  11. # END WordPress

WordPress 3.5+

  1. # BEGIN WordPress
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteRule ^index.php$ - [L]
  5. # /wp-adminにトレーリングスラッシュを追加
  6. RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
  7. RewriteCond %{REQUEST_FILENAME} -f [OR]
  8. RewriteCond %{REQUEST_FILENAME} -d
  9. RewriteRule ^ - [L]
  10. RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
  11. RewriteRule ^(.*\.php)$ wp/$1 [L]
  12. RewriteRule . index.php [L]
  13. # END WordPress

古いWPMUインストールの問題

サブフォルダー/サブディレクトリにWordPress MUをインストールし(サーバーのルートフォルダーではなくftp経由で)、サムネイルや画像が表示されない画像ライブラリの問題がある場合は、ファイルディレクトリのために手動でリライトルールを追加する必要があるかもしれません。

  1. RewriteRule ^([_0-9a-zA-Z-]+/)?siteN/files/(.+) wp-content/blogs.dir/N/files/$2 [L]

通常のアップロードファイルの呼び出しのにそれらを置いてください。

ネットワーク管理者リンクの場所

ネットワーク管理者リンクは、WordPressの各メジャーリリースに伴い移動しており、これはまだ進行中の作業です。使用しているWordPressのバージョンによって、リンクは以下の場所にあります。

  • 3.0 – スーパ管理者というメニュー
  • 3.1 – 管理ヘッダーの「Howdy, YOURNAME」の横
  • 3.2 – 管理ヘッダーの「Howdy, YOURNAME」の下のドロップダウン
  • 3.3+ – 管理バーの「マイサイト」の下のドロップダウン

ドメインマッピング

WordPress 4.5以前では、ドメインマッピングにはドメインマッピングプラグインが必要です。WordPress 4.5+では、ドメインマッピングはMultisitesのネイティブ機能です。この機能の使用方法については、WordPress Multisite Domain Mappingを参照してください。

Multisiteの移動

Multisiteの移動は、単一インストールの移動よりも複雑です。続行する前に、WordPress Multisiteの移動をお読みください。

ネットワークへのインポート

他のサイトをインポートするためにWordPressネットワークを作成したら、WordPress Multisiteへの複数ブログの移行の記事を参照する必要があります。

変更履歴