web-dev-qa-db-ja.com

外部のJavaScriptファイルをリンクする方法

私はカスタムWordPressテーマに取り組んでいます。 1つのことを除いて、私はこれまでのところすべてが完璧に動作しています。外部のJavaScriptファイルは動作しません。

リンク here および here から正確なアドバイスに従ったが、それでも機能しない。

私はコーデックスを検索し、ソースコードをチェックし、firebugを使用しました。なぜこれがうまくいかないのかわかりません。残念ながら、 _ nda _ のため、サイトの実際のコード、またはそのリンクを提供することは許可されていません。だから私はできる限り説明する必要があります。

私はwp_enqueue_script()を使用してファイルをfunctions.phpファイルに含めました。頭の中のスクリプトタグは次のとおりです。

<script type='text/javascript' src='http://www.xx.com/wp-includes/js/jquery/jquery.js?ver=1.4.4'></script>
<script type='text/javascript' src='http://www.xx.com/wp-content/themes/twentyten/scripts/custom.js?ver=3.1'></script>

そのため、ファイルはロードされていますが、機能していません。 ?ver=3.1ファイルの最後にあるcustom.jsがそれに関係しているのではないかと私は思っていましたか?

私のfunctions.phpファイルからのコード:

function twentyten_custom_scripts() {
if ( !is_admin() ) // instruction to only load if it is not the admin area
{ 
   // register your script location, dependencies and version
    wp_register_script('custom_script', get_bloginfo('template_directory') . '/scripts/custom.js', array('jquery') );
   // enqueue the script
    wp_enqueue_script( 'jquery' );
    wp_enqueue_script('custom_script');
}
}
add_action('template_redirect', 'twentyten_custom_scripts');

私はこの時点で本当に迷っています。私も私のすべてを変更しました:

$('#elem').hide(); 

jQuery('#elem').hide(); 

コーデックスwp_enqueue_script() no conflict wrappersセクションに従うcustom.jsファイルでは ここ 、まだ何もありません。

ああ、そして私は私のPagesの全てにロードするのにこのファイルを必要としているが、私のBlogではそうではない。メインサイトそれが理にかなっていると思います。

1
AverageJoe

私の観点からは、これはうまくいくはずです。多分あなたは custom.js ファイルをここに投稿することができます。このファイルに構文エラーなどがある可能性があります。 header.php に単純なjquery-commandを追加することで、組み込みのjqueryがそのまま使えるかどうかをテストすることもできます。

いくつかのヒント:

  1. Action-hook template_redirectはフロントページにのみファイルをインクルードするために使われます(だから私は覚えていることができます)。テーマがロードされた後にスクリプトをロードしたい場合は、after_setup_themeアクションフックを使用できます。

  2. あなたがしたようにjqueryをあなたの custom.js の依存関係として設定するならば、あなたはあなたのjqueryファイルを手動でエンキューする必要はありません。 custom.js が添付される前に、ファイルはWordPressから自動的にロードされます。

  3. custom.js の先頭にjQuery.noConflict();を追加しましたか?

いくつかの実用的な例:

functions.php

function twentyten_custom_scripts() {
    if ( !is_admin() ) // instruction to only load if it is not the admin area
    { 
        wp_register_script('custom_script', get_bloginfo('template_directory') . '/scripts/custom.js', array('jquery') );
        wp_enqueue_script('custom_script');
    }
}
add_action('after_setup_theme', 'twentyten_custom_scripts');

custom.js

jQuery.noConflict();

jQuery(document).ready(function() {
    // do your stuff e.g.
    jQuery("a[rel^='prettyPhoto']").prettyPhoto();
});
3
rofflox