サポート » バグ報告と提案 » wp-2.6.xのプラグインディレクトリの表示

  • 解決済 Masarki Kondo

    (@moo2000)


    wordpress 2.6.2を試していたところ、wp-adminの「プラグイン管理」であれ?と思う点を発見しました。
    これはバグなのでしょうか?
    それとも2.6以降の仕様なのでしょうか?

    2.5まではプラグインのリストの下の表示が

    もしプラグインがうまく動作しなくて WordPress が使用できなくなったら、そのプラグインのファイル名を変更するか、もしくは wp-content/plugins ディレクトリから削除してください。そのプラグインは自動的に停止されます。

    となっていました。

    2.6.0及び2.6.2では

    もしプラグインがうまく動作しなくて WordPress が使用できなくなったら、そのプラグインのファイル名を変更するか、もしくは (ABSPATH)wp-content/plugins ディレクトリから削除してください。そのプラグインは自動的に停止されます。

    となり、(ABSPATH)の部分がこのブログのルートまでのフルパス表示になっています。

    2.6から「WP_CONTENT_DIR」定数が追加され、テーマやプラグインの取り方の一部が変更されたのは感じていましたが、ここについては仕様変更なのでしょうか?

    なお、ソースは
    2.5.xまでは

    <?php printf(__('If something goes wrong with a plugin and you can’t use WordPress, delete or rename that file in the <code>%s</code> directory and it will be automatically deactivated.'), PLUGINDIR); ?>

    これが2.6以降は

    <?php printf(__('If something goes wrong with a plugin and you can’t use WordPress, delete or rename that file in the <code>%s</code> directory and it will be automatically deactivated.'), WP_PLUGIN_DIR); ?>

    となっていました。
    フルパス表示は必要なのかなぁ?

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    2.6から「WP_CONTENT_DIR」定数が追加され、テーマやプラグインの取り方の一部が変更されたのは感じていましたが、ここについては仕様変更なのでしょうか?

    おそらくそうだと思います。フルパス表示だと長くて見にくくなるという欠点はありますが、プラグインの追加・削除をするには必要な情報ですから、親切だと思いますよ。

    もし、従来通りの表示だとプラグインディレクトリーを変更しているのに、従来の場所にアップロードして「プラグインが認識されない」と悩むなどの事例がありそうですし。

    まぁ、lilyfanさんのおっしゃるとおり、親切と言えば親切なんですが、レンタルサーバなどを使っていると「なんだこのディレクトリ」とたぶん最初驚くかと思います。
    (まぁ慣れれば問題ないんですけどね)

    もし、従来通りの表示だとプラグインディレクトリーを変更しているのに、従来の場所にアップロードして「プラグインが認識されない」と悩むなどの事例がありそうですし。

    プラグインディレクトリをABSPATHの外に出すことってありますか?
    そうなるとたぶん、PLUGINDIR を使っている部分との整合性も採れなくなりますし、WP_PLUGIN_DIRがsiteurlの外に設定されることはまずないと思うのですが…
    これらの定数を定義しているwp-settings.phpを見ると

    PLUGINDIR = wp-content/plugins
    WP_PLUGIN_DIR = WP_CONTENT_URL . '/plugins'
    WP_CONTENT_URL = get_option('siteurl') . '/wp-content'

    となっています。
    ここの仕様がまた変わらない限りは

    モデレーター IKEDA Yuriko

    (@lilyfan)

    プラグインディレクトリをABSPATHの外に出すことってありますか?

    プラグインディレクトリーというより、wp-content ディレクトリーを ABSPATH の外に出すのは、それなりに需要がありそうです。wp-content ディレクトリーはユーザー独自のデーターが入っているので、それを ABSPATH の外に出してやると、CVS や Subversion などで WordPress 自体のアップグレードがやりやすくなりますから。

    WP_PLUGIN_DIR = WP_CONTENT_URL . '/plugins'
    WP_CONTENT_URL = get_option('siteurl') . '/wp-content'

    コードをよく見たら分かりますけど、2つめの WP_CONTENT_URL の定義は、「まだ WP_CONTENT_URL が define されていないとき」のもの (デフォルト定義) です。なので、wp-config.php で WP_CONTENT_DIR, WP_CONTENT_URL を定義してやると、その内容に従います。

    残念ながら、現在はまだ多くのプラグインが ABSPATH/wp-content/plugins にインストールされていることを決め打ちに作成されているので、移動してしまうと不具合が起きることが多いですね。

    確かにlilyfanさんのおっしゃるとおり

    コードをよく見たら分かりますけど、2つめの WP_CONTENT_URL の定義は、「まだ WP_CONTENT_URL が define されていないとき」のもの (デフォルト定義) です。なので、wp-config.php で WP_CONTENT_DIR, WP_CONTENT_URL を定義してやると、その内容に従います。

    しかし、これを変更できるとすればwp-config.phpだけですよね。
    my-hacks.phpが出現するのはこの後ですし、当然プラグインでは設定できません。

    でも、そういう仕様に変更されたと言うことで現状は納得します。

    ところで

    wp-content ディレクトリーはユーザー独自のデーターが入っているので、それを ABSPATH の外に出してやると、CVS や Subversion などで WordPress 自体のアップグレードがやりやすくなりますから。

    と言うことは、プラグインのディレクトリそのものが大幅に変更になる可能性があるんでしょうかねぇ。
    (確かに、Geeklogのように公開領域と非公開領域を作って、セキュリティを高める(?)という方法も考えられない訳ではないけど)

    「WordPress Plugins/JSeries」内のlilyfanさんのお作りなったプラグインの説明を読んでいて、この仕様が存在する理由がわかりました。
    説明の中の「wp-content もしくは wp-content/plugins ディレクトリーを移設する場合」で理解することができました。

    複数のwordpressを利用したいとき、プラグインをそれぞれにインストールするのではなく、どこか一箇所にまとめておけば、共通して使えるということですね。
    そうなるとやはり、プラグインディレクトリの表示をフルパスで表示する必要がありますね。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「wp-2.6.xのプラグインディレクトリの表示」には新たに返信することはできません。