WordPressマイスター

WordPressマルチサイトでのUpload/URL Path問題

(初出: FLAMA技術ブログ 2017/2/27)

はじめに

Regardless of WP version, these locations cannot be changed by site admins. Only the network admin can make changes on the site settings page.

(WPのバージョンにかかわらず、これらの場所(注:PATHとURL)はサイト管理者が変更することはできない。ネットワーク管理者は管理画面から変更が可能である)

しかし’Upload path’と’Upload Url path’は無効でありかつ/または自動的に変更されています。これはなぜで、何が起きているのでしょうか?

要素

  1. バグ #25819
    • WPを3.5にアップデートする際、ms_files_rewritingが作成されませんでした。
  2. ms_files_rewriting
    • この値が “1” の場合、管理画面で設定した値は無効となります。
  3. db_version と wp-includes/upgrade.php
    • db_versionが “21823” 以下の場合、”1″ が設定されます(wp-includes/upgrade.phpによる)。
    • WPのアップデートはしていたのですが、db_versionは更新されていませんでした。この問題には他の条件やパターンが影響している模様です。
  4. wp-includes/ms-default-contstants.php
    • ms_files_rewriting*_optionsor*_sitemetaテーブルに存在しない場合、”1″ が設定されます。
    • ms_files_rewritingはアップロード関連の定数を設定するのに使用されます。
      例)UPLOADBLOGSDIRUPLOADSBLOGUPLOADDIR
  5. wp-includes/functions.php
    • アップロードPATHやURLを設定するのにms_files_rewritingが使用されます。
  6. upload_path
    • アップロード先を指定する変数です。
    • 3.5で廃止されています。

条件とパターン

条件とパターンが結構存在する模様です。
(間違っていたらすみません)


ありうる選択肢

Q. なぜ定数UPLOADBLOGSDIRを使用しないのですか?
A. ms_files_rewritingが “0” に設定されている場合は無視されるためです。

各パターンの問題

パターン#1にある既存の問題
パターン#2で発生しうる問題
パターン#3によって生じる問題

結論

モバイルバージョンを終了