2016-05-30 3 views
0

私は自分のwordpressサイトをキャッシュするのにcloudflareを使用します。jquery関数を現在のwp jqueryバージョンで動作させるように修正する

ただし、ログインしたユーザーが最新のコンテンツを取得できるように、クラウドフレアキャッシュをバイパスする必要があります。

これを行うには、ログインしているユーザーのCookieを設定し、そのCookieが存在する場合は、ページの各URLに?bypass = 1を追加します。それから私はそのパラメータで任意のURLをバイパスするようにcloudflareを設定しました。

私はこのようなページのURLをバイパス= 1を追加してきました:

<script> 
    if (document.cookie.indexOf("cachen") > -1) { 
     $(function() { 
      $("a").prop("href", function() { 
       var url = $(this).prop("href"); 
       if (url.indexOf('#') == -1) { 
        if (url.indexOf('?') == -1) { 
         return url + "?bypass=1"; 
        } 
       } 
      }); 
     }); 
    } 
</script> 

しかし、動作を停止し、最近のWordPressのアップデート、後。

私はこれで機能を先行することができることを見つける:

<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script> 

とコードが動作する....しかし、私は私のプラグインのいくつかのいくつかの問題に実行を開始。

私の現在のワードプレスは、私はこの問題を考えている

は、関数の中で何かが更新jqueryのバージョンでcompatableされていないということですjquery.js?版= 1.12.3を使用していますが、私はどのように修正する見当がつかないこの。

答えて

0

jQuery.noConflict()を使用できます。

<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script> 
<script type="text/javascript"> 
    var noConflict3 = jQuery.noConflict(); // Assign and use noConflict mode 
    noConflict3(document).ready(function() { 
     // My code here 
    }); 
    $ = jQuery.noConflict(); // Had to assign it back, otherwise WP was full of JS errors 
</script> 

そして、ここでは、jQueryのnoConflictドキュメントである:ここで

が私のために働いていたコードの抜粋ですLink

それは私のために働いた、私はそれがあまりにもあなたのために働く願っています:)

0

ああ、解決策を見つけた

私はメッセージを得ていたChromeでの開発ツールで見つかった:

?bypass=1:1202 Uncaught TypeError: $ is not a function(anonymous function) @ ?bypass=1:1202

私はそれを見上げるとが見つかりました:

Uncaught TypeError: undefined is not a function (anonymous function) in Wordpress

言うた:

Wordpress is running in noConflict mode by default, change the DOM ready wrapping to

jQuery(function($){ 

    // your code goes here 

}); 

otherwise $ will be undefined

をそれはトリックをし、私は今古いバージョンを削除することができるf jqueryとコードが動作します。

関連する問題