私の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に感謝します!