2013-04-10 5 views
0

Это мой первый раз, когда я использую wp_enqueue_script для решения IDX, которое я пытаюсь настроить на сайте WordPress. Мой путь к файлу ребенок Темы/JS/idx.jswp_enqueue_script не отображает скрипт

Я поместил этот код в моем файле 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'); 

Это ничего не делает. Когда я использую функцию wptuts_scripts_with_jquery() в функции functions.php с другими скриптами, это работает, но не с скриптом idx.js. Любая помощь могла бы быть полезна.

Спасибо!

ответ

0

Я не знаю, почему вы пытаетесь включить теги <script> внутри внешнего ресурса, но это все неправильно - они должны содержать только чистый javascript (это то, что уже ожидает браузер).

Вашего файл idx.js должен содержать только эту строку: $.createDynamicFrame(...


Onto причины, почему это ошибочный файл не включен, хотя - массив вы передаете в качестве параметра при очередях сценарии в Wordpress список зависимостей. Я предполагаю, что, поскольку вы пытались включить jQuery в свой JS-файл, то он ранее не был загружен шаблоном? В этом случае , потому что у вас нет enqueued jQuery - «custom-script» не имеет всех необходимых компонентов, поэтому он не попадает на страницу.

По умолчанию 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 я оставил это. Также обратите внимание, что вы можете зарегистрироваться и enqueue в одном сообщении wp_enqueue_script.

Смежные вопросы