サポート » プラグイン » 外部モジュールを使う際のコンフリクトの解消方法

  • 解決済 reiran2000

    (@reiran2000)


    お世話になります。

    実は、WordPress Plugins/JSeriesの方ではない、arthemia様の所で配布されています、新API対応の新版?のwp-tmkm-amazon を自サイトにインストールすると、amazonへのリンクを表示する直前でアボートするような事象がありまして、デバッガで色々調べた結果、wp-tmkm-amazon-function.php の208行目、include_once 命令で自分のフォルダにあるxml.phpをロードしようとして落ちている事がわかりました。

    私が制作しているwp-nicolinkでも、自分のフォルダ内の xml.php をプログラム冒頭の reuire_onceで読み込んでおり、これがコンフリクトを起こしている原因というのは把握したのですが、回避する手段が浮かびません。

    wp-nicolink 内部を弄って include_once で読み込む様にしても結果は何故か不安定でした。
    現在は、wp-tmkm-amazon-function.php の208行目をコメントアウトにすることで、回避はできているのですが、wp-nicolink 内部のコード追加などで上記のトラブルを回避できる手段があれば・・・。お知恵をお借りできれば幸いです。

    動作環境はサクラ鯖上で、PHPは v5.2.10 でした。

    wp-nicolink
    http://sekka.jp/?page_id=1498

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

    (@jim912)

    reiran2000さん、こんにちは。

    同じライブラリーを利用しているようですので、class_existsで分岐処理を行えば回避できるのですが、この方法は、後にロードされるプラグインに記述が必要な事と、ライブラリーのバージョンが先にロードされたプラグインに依存してしまうことになります。

    短期的にでもwp-nicolinkでなんとか回避したいのであれば、クラス名、関数名をオリジナルのものに変更すれば、コンフリクトせずに動作します。

    できたら、arthemiaの管理人さんにコンタクトして上記の分岐処理を入れてもらえるようにリクエストするのがベストだと思います。

    トピック投稿者 reiran2000

    (@reiran2000)

    jim912さん、お返事ありがとうございます。

    やはり、現状ではクラス名・関数名のリネームになるようですね。
    wordpressのプラグインにおいて、 include_once や require_once で外部モジュールを実装する手段としては、回避的にはあまり意味がない感じでしょうか。

    xml.phpのような有名な外部モジュールを使うプラグインは、たぶん多いと思いますので、class_existsを使った実装をしてみます。また、arthemia様にもコンタクトしてみます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「外部モジュールを使う際のコンフリクトの解消方法」には新たに返信することはできません。