表題のとおりですが、こんなエラーがでて一向に認証できなかったりしました。
Fatal error: Call to undefined function wordtwit_parsexml() in /virtual/username/public_html/hogehoge/wp-content/plugins/wordtwit/include/oauth-twitter.php on line 378
一応暫定的ですが、対処できたのでメモ。
状況分析
バージョンはWordPress3.2+WordTwit2.6.4。
まあ、運用環境はいつも愛用のCORESERVER.JPなんですが、プラグインのアップデートを久々にしたら出てきました。
エラー内容は見る限り「wordtwit_parsexmlなんて関数ねぇよ!ヴォケ!」なわけですけど、なんでやろ。
解決方法
まずはwordtwit_parsexml()
の居場所を突き止めます。該当箇所はプラグインディレクトリのトップにあるxml.php。
今度はxml.phpをincludeしている箇所を特定します。
ここですね。同じ階層にあるwordtwit.phpの25行目。
require_once( ABSPATH . 'wp-includes/class-snoopy.php' );
require_once( 'xml.php' );
require_once( 'tinyurl.php' );
require_once( 'include/widgets.php' );
require_once( 'include/oauth-twitter.php' );
25行目をごにょごにょしてみたら、おそらく別のプラグインが同名の「xml.php」をrequire
してると思われることが判明しました。
じゃあ、絶対パスで書いちゃえ!
require_once( ABSPATH . 'wp-includes/class-snoopy.php' );
require_once( dirname(__FILE__) . '/xml.php' );
require_once( 'tinyurl.php' );
require_once( 'include/widgets.php' );
require_once( 'include/oauth-twitter.php' );
次回アップデートでかき消されてしまうあんまりイケてない対処ですが、これは作り手が悪い。たぶん。
ということで、これで一応解決です。
ちなみに競合していたプラグインは「Nico Nico Video Linker」ってやつでした。xml.phpってありがちな名前だから他にもありそう・・・
以上!
コメント