2015-01-18 6 views
0

Я использую wordpress, и у меня есть пользовательский js во внешнем файле в корне моей дочерней теме. Я хочу, чтобы ссылка на этот js-файл была написана в самом конце html-документа непосредственно перед закрывающим тегом body. Сначала я попробовал hardcode ссылку в footer.php. Я подтвердил, что ссылка на внешний файл js была правильной в источнике html, но javascript ничего не сделал, а также не сделал никаких ошибок в firebug. Внешний файл содержал только:Как запустить внешний файл js из дочерней темы в wordpress

jQuery(document).ready(function(){ 
    alert('hello') 
}); 

Таким образом, после прибегая к помощи этой проблемы на некоторое время я обнаружил, что мне нужно будет использовать

wp_register_script 

и

wp_enqueue_script 

я нашел документацию here и here но я не очень хорошо знаком с php ...

В настоящее время я добавил:

add_action('wp_enqueue_scripts', 'load_javascript_files'); 
function load_javascript_files() { 
    wp_register_script('scripts', get_template_directory_uri() . 'wp-content/themes/maya_child/scripts.js', array('jquery'), true); 
    wp_enqueue_script('scripts'); 
} 

в файл functions.php моей дочерней темы. В результате ссылка на мой пользовательский файл сценариев вообще не распечатывается в источнике

Возможно, мне не хватает шага, или я испортил php? Мне нужно добавить что-то в header.php? или footer.php?

ответ

1

Возможно, это путь к вашему javascript, который вызывает проблему. get_template_directory_uri() возвращает путь к вашей теме, а не путь к вашему сайту. Кроме того, когда вы используете дочернюю тему, эта функция по-прежнему возвращает uri родительской темы, поэтому здесь не лучший выбор.

Вместо этого попробуйте get_stylesheet_directory_uri():

add_action('wp_enqueue_scripts', 'load_javascript_files'); 
function load_javascript_files() { 
    wp_register_script('scripts', get_stylesheet_directory_uri() . '/scripts.js', array('jquery'), null, true); 
    wp_enqueue_script('scripts'); 
} 

Обратите внимание, что ни одна из этих функций возвращает слэш на Ури, поэтому вам нужно добавить, что перед остальной частью вашего пути, например. '/scripts.js'

+0

... и проверьте консоль, чтобы убедиться, что она загружается. –

+0

@ Gavin Simpson - Я забыл упомянуть, что ... он не загружается, если не жестко закодирован. И если я его жестко программирую, он не может работать, кроме того, что это плохая практика. – HelloWorld

+0

@ Джеймс Уэйдингтон: Спасибо! это действительно сработало. Как ни странно, это не последняя ссылка на сценарий перед тегом, но, возможно, некоторым из других ссылок на скрипты также говорят, что они появляются последними и их переопределяют. – HelloWorld

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