[未解決] wp-contentを変更している環境でプラグインを有効化できない

フォーラム インストール [未解決] wp-contentを変更している環境でプラグインを有効化できない

  • このトピックには8件の返信、3人の参加者があり、最後にnanbuにより11年、 8ヶ月前に更新されました。
9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • 投稿者
    投稿
  • #51893
    kazz
    参加者

    動作に関するご質問の場合は必ずご記入ください。


    WordPress のバージョン:3.4.2

    Welcart のバージョン:1.2.0

    ご利用のテーマ:

    症状を確認したブラウザ:IE9

    サーバー(会社名、サービス名):

    SSLの利用: 無し

    WordPress のパーマリンク設定:デフォルト


    wp-config.phpでWP_CONTENT_DIRとWP_CONTENT_URLを定義してwp-contentディレクトリを標準以外の場所に移動(or リネーム)している環境だとWelcartをインストール後有効化しようとしたときにエラーが発生して有効化できません。

    usc-e-shop.phpの20、21行目

    define('USCES_WP_CONTENT_DIR', ABSPATH . 'wp-content');

    define('USCES_WP_CONTENT_URL', get_option('siteurl') . '/wp-content');

    if (defined('WP_CONTENT_DIR')) {

    define('USCES_WP_CONTENT_DIR', WP_CONTENT_DIR);

    } else {

    define('USCES_WP_CONTENT_DIR', ABSPATH . 'wp-content');

    }

    if (defined('WP_CONTENT_URL')) {

    define('USCES_WP_CONTENT_URL', WP_CONTENT_URL);

    } else {

    define('USCES_WP_CONTENT_URL', get_option('siteurl') . '/wp-content');

    }

    のように修正したところ有効化できるようになり、一応正常に動作しているようですが

    これが正しいのかわかりません。

    #65607
    nanbu
    キーマスター

    こんにちは。

    ご指摘の通りで大丈夫だと思います。本体の方も修正したいと思います。

    ありがとうございます。

    #65608
    kazz
    参加者

    返信ありがとうございます。

    もう少し調べたところ

    classes/usceshop.class.php

    includes/edit-form-advanced.php

    includes/edit-form-advanced30.php

    includes/edit-form-advanced34.php

    languages/usces-ja.mo

    languages/usces-ja.po

    theme/welcart_default/languages/ja.mo

    theme/welcart_default/languages/ja.po

    の中にも’wp-content’が決め打ちになっているところがあるようです。

    併せてご確認ください。

    #65609
    nanbu
    キーマスター

    ちょっと調べてみたのですが、WordPressがWP_CONTENT_DIRをdefineしているファイルはwp-load.phpの他いくつかあるようですが、いずれもリテラルで’wp-content’が指定されているようです。

    特にフィルター等で変更できるようにはなっていないように見えますが、お手数でなければwp-contentのフォルダ名を変えることの有効性を教えていただけますでしょうか。

    #65610
    kazz
    参加者

    おそらくwp-load.php等でWP_CONTENT_DIRがdefineされているのはwp-configでWP_CONTENT_DIRがdefineされていない場合(既定)のための初期値としての意味合いではないかと思います。

    wp-contentのフォルダ名を変えるというのはセキュリティ的な意味合いで語られていることが多いと思います。

    有名なところでは

    簡単な作業でWordPressのセキュリティをアップするチップス

    といった翻訳記事で紹介されています。

    またセキュリティプラグイン「Better WP Security」などではwp-contentディレクトリをリネームする機能が提供されていたりもします。

    ただここのような議論もあり確かにセキュリティアップにつながるかは疑問のあるところです。

    この中で言われているように他CMSからURLを維持したままコンテンツを移行するための機能という方が説得力があると思います。

    ちなみにwordpressのマニュアルではバージョン2.6以降でwp-content ディレクトリの移動が可能になったとの記述があります。

    #65611
    nanbu
    キーマスター

    おそらくwp-load.php等でWP_CONTENT_DIRがdefineされているのはwp-configでWP_CONTENT_DIRがdefineされていない場合(既定)のための初期値としての意味合いではないかと思います。

    なるほど。wp-configでdefineを先取りしてしまうということですね。

    了解です。いろんなところを修正しなくてはいけないので少し時間をいただきたいと思います。よろしくお願いいたします。

    #65612
    hashimoto
    参加者

    この件について、対応を行いましたのでパッチを投稿致します。

    チケット: https://www.welcart.com/development/mantisbt/view.php?id=581

    SSL有効時のcssとcontents_link のURL生成部に、強引な実装があります。(9-13, 32-38行目)

    これは、サブディレクトリ化にインストールしたWPに対応するための処理です。

    #65613
    hashimoto
    参加者

    mime type で弾かれてしまったので、パッチのURLを書いておきます。

    https://dl.dropbox.com/u/13400853/fix_wp-content_path.patch.txt

    version: usc-e-shop.1.3.zip

    wordpress: 3.5.1

    #65614
    nanbu
    キーマスター

    hashimotoさん

    パッチのご提供ありがとうございます!

    行き当たりばったりで指定されていたパスもこれですっきりしました。

    一通り動作を検証して、問題なければリリースしたいと思います。

    ありがとうございました。

9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • このトピックに返信するにはログインが必要です。