1

私のWordpressページは(jQueryのを使用してload())別のページをロードし、メインページには必要なすべての.jsファイルがすでに含まれている必要があります。そのうちのいくつかは手作りです。

通常は通常の方法でそれらを追加しようとすると:

<script src="http://10.0.0.158:8082/js/myScript.js"></script>

うまくいくこともあれば、うまくいかないこともあります。70% の時間は機能しません。一時的に機能させるには、F5 キーを数回押すだけです。

私のページは、その中に他の多くのページをロードします (常に jQuery を使用load()) が、通常の php ページにインポートすると正常に動作します。

Wordpressはそれを台無しにするだけです。

だから私はたくさんグーグルで調べましたが、HTMLタグを介してスクリプトをインポートすることはできないようです。ワードプレスのphp関数を使用する必要がありますwp_enqueue_script。ドキュメントはこちら: http://codex.wordpress.org/Function_Reference/wp_enqueue_script

そのドキュメントとこのガイドの情報を使用する: http://www.ericmmartin.com/5-tips-for-using-jquery-with-wordpress/

私はこの機能を作りました:

<?php
        function customScriptInit() {
    if (!is_admin()) {
        echo"look! i'm working!";

        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://10.0.0.158:8082/js/JQuery.min.js', false, '1.8.3', true);
        wp_enqueue_script('jquery');

        wp_enqueue_script('jqueryUi', 'http://10.0.0.158:8082/js/jquery-ui-1.9.2.min.js', array('jquery'), '1.0', true);
        wp_enqueue_script('cookie', 'http://10.0.0.158:8082/js/cookie.js', array('jquery'), '1.0', true);
        wp_enqueue_script('json2', 'http://10.0.0.158:8082/js/json2.js', array('jquery'), '1.0', true);
        wp_enqueue_script('easing', 'http://10.0.0.158:8082/js/easing.min.js', array('jquery'), '1.0', true);
    }
    }
add_action('wp_enqueue_scripts', 'customScriptInit');
?>

私はエコーコマンドを配置して、正常に実行されていることを確認しました(はい、私のページでそのメッセージを見ることができます)。

しかし今.. jsがまったくロードされていないように見えます.javascriptコンソールからこのエラーがあります:

Uncaught ReferenceError: jQuery is not defined 

jQueryの登録解除と再登録に関する3行を削除すると、jQueryは機能しますが、インポートされたスクリプトは機能しません。通常、Cookieのjsエラーが発生します。

Can't read cookie: TypeError: Object function (e,t){return new v.fn.init(e,t,n)} has no method 'cookie'

これらの js ファイルを自分のページに正しくインポートするにはどうすればよいですか?

Wordpressでは「$」の代わりに「jQuery」を使用するのが良いことを知っています。私はそれらをすべて変換してこの結果を得ました。「$」を使用すると完全に混乱してしまいました!

編集:このコードで解決

<?php
function customScriptInit() {
    if (!is_admin()) {

        wp_register_script( 'my-jqueryUi', ABSPATH . '/js/jquery-ui-1.9.2.min.js');
        wp_register_script( 'my-cookie', ABSPATH . '/js/cookie.js');
        wp_register_script( 'my-json2', ABSPATH . '/js/json2.js');
        wp_register_script( 'my-easing', ABSPATH . '/js/easing.min.js');

        wp_enqueue_script( 'my-jqueryUi');
        wp_enqueue_script( 'my-cookie');
        wp_enqueue_script( 'my-json2');
        wp_enqueue_script( 'my-easing');
        }
    }
add_action('wp_enqueue_scripts', 'customScriptInit');
?>

良い実践のセグナレーションをしてくれたadeneoに感謝します!

4

2 に答える 2

3

サイトに複数のバージョンの jQuery が存在する可能性が高いため、独自のバージョンの jQuery をロードしないでください。jQuery と jQueryUI を他のスクリプトで必要に応じて設定するだけで、wordpress は自動的に jQuery をロードします。

function customScriptInit() {
    if (!is_admin()) {
       $depends_on = array('jquery', 'jquery-ui-core', 'jquery-ui-sortable');

        wp_enqueue_script('cookie', ABSPATH . '/js/cookie.js', $depends_on);
        wp_enqueue_script('json2',  ABSPATH . '/js/json2.js', $depends_on);
        wp_enqueue_script('easing', ABSPATH . '/js/easing.min.js', $depends_on);
    }
}

add_action('wp_enqueue_scripts', 'customScriptInit');

URL には WP 変数の 1 つを使用し、ハードコードしないでください。通常行うプラグインの場合:

plugins_url('/js/cookie.js', __FILE__)

適切なURLなどを取得する

また、ワードプレスでは、必要なものに応じて、jQuery UI の各部分を個別にロードする必要があることにも注意してください。それはすべてCodexで説明されています。

Wordpress では、jQuery でドル記号をすべて変更する必要はありません。次のように、競合しないラッパーでラップするだけです。

jQuery(document).ready(function($) {
    // $() will work just fine as an alias for jQuery() inside of this function
});

その中で、あなたは$いつものように使い、物事をずっと簡単にします.

于 2013-02-28T11:34:57.357 に答える
0

前にjsファイルを登録することを解決しました

<?php
function customScriptInit() {
    if (!is_admin()) {

        wp_register_script( 'my-jqueryUi', ABSPATH . '/js/jquery-ui-1.9.2.min.js');
        wp_register_script( 'my-cookie', ABSPATH . '/js/cookie.js');
        wp_register_script( 'my-json2', ABSPATH . '/js/json2.js');
        wp_register_script( 'my-easing', ABSPATH . '/js/easing.min.js');

        wp_enqueue_script( 'my-jqueryUi');
        wp_enqueue_script( 'my-cookie');
        wp_enqueue_script( 'my-json2');
        wp_enqueue_script( 'my-easing');
        }
    }
add_action('wp_enqueue_scripts', 'customScriptInit');
?>
于 2013-02-28T12:04:04.763 に答える