0

WordPress サイトでセットアップしようとしている IDX ソリューションに wp_enqueue_script を使用するのはこれが初めてです。私のファイルパスは child-theme/js/idx.js です

このコードを functions.php ファイルに配置しました。

<?php
function wptuts_scripts_with_jquery()  
{  

    // Register the script like this for a theme:  
    wp_register_script( 'custom-script', get_template_directory_uri() . '/js/idx.js',      array( 'jquery' ) );  

// For either a plugin or a theme, you can then enqueue the script:  
    wp_enqueue_script( 'custom-script' );  
}  
add_action( 'wp_enqueue_scripts', 'wptuts_scripts_with_jquery' );  ?>

そして、私の idx.js ファイルのこのコード:

<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js" type="text/javascript" ></script>
<script src="http://tools.example.com/scripts/postmessage.min.js" type="text/javascript" ></script>
<script type="text/javascript" >
$.createDynamicFrame('http://example.example.com', 'http://example.example.com/26611/Carets/search?parentUrl=' + encodeURIComponent( document.location.href ), 'MapSearch');

これは何もしません。functions.php の wptuts_scripts_with_jquery() 関数を他のスクリプトで使用すると、動作するように見えますが、idx.js スクリプトでは動作しません。どんな助けでも本当に感謝しています。

ありがとう!

4

1 に答える 1

0

<script>外部リソース内にタグを含めようとしている理由はわかりませんが、これはすべて間違っています。純粋な JavaScript のみを含める必要があります (これはブラウザーが既に期待しているものです)。

ファイルidx.jsには次の行のみを含める必要があります。$.createDynamicFrame(...


ただし、この誤ったファイルが含まれていない理由については、Wordpress でスクリプトをキューに入れるときにパラメーターとして渡す配列は、依存関係のリストです。JS ファイル内に jQuery を含めようとしていたので、テンプレートによって以前にロードされていないと思いますか? その場合、 jQuery をエンキューしていないため、 「カスタム スクリプト」には必要なコンポーネントがすべて含まれていないため、ページにプッシュされません

デフォルトでは、wordpress にはすでに jQuery のバージョンが登録されています。CDN の設定 (または下位互換性のため) のために別のバージョンを使用する必要がある場合は、目的のwp_deregister_scriptバージョンで再エンキューする必要があります。それ以外の場合、関数は次のようになります。

function wptuts_scripts_with_jquery(){
  $path = get_template_directory_uri();
  wp_enqueue_script('jquery');
  wp_enqueue_script('custom-script', "{$path}/js/idx.js", array('jquery'));  
} 

何も存在しないので、これを省略tools.example.com/scripts/postmessage.min.jsしました。また、単一のステートメントで登録およびエンキューできることにも注意してください。wp_enqueue_script

于 2013-04-10T19:09:35.063 に答える