2015-02-24 3 views
0

Я бы хотел использовать мой виджет на всех страницах, но это работает только на домашней странице. Я все еще нахожусь на местном уровне. Я пишу мой сценарий в footer.php до конца тела, как, что:Javascript в виджетах Wordpress работает только на главной странице

<script type="text/javascript" src="wp-content/themes/twentyfourteen/js/formlist.js"></script> 

Я видел, что, когда я не на домашней странице, когда я осмотреть с developper инструментов, мой скрипт .js красный и плохо импортированный. Как я могу это сделать?

ответ

2

Вы должны правильно епдиеие свой Javascript в вашей теме, то есть что-то вроде этого:

function theme_name_scripts() { 
     wp_enqueue_style('style-name', get_stylesheet_uri()); 
     wp_enqueue_script('script-name', get_template_directory_uri() . '/js/example.js', array(), '1.0.0', true); 
    } 

add_action('wp_enqueue_scripts', 'theme_name_scripts'); 

Существуют и другие методы, в зависимости от того, если ваш скрипт использует основную библиотеку JQuery и другие соображения. См. Function Reference/wp enqueue script « WordPress Codex для получения информации обо всех способах использования wp_enqueue_style.

И используйте инструменты Dev для проверки ошибок и правильной загрузки.

+0

Спасибо, отлично! Не забудьте добавить: add_action ('wp_enqueue_scripts', 'theme_name_scripts'); – Viny76

+0

А, моя копия/макаронная ошибка .... – markratledge

-1

Попробуйте вызвать скрипт так:

<script src="<?php echo get_template_directory_uri();?>/js/formlist.js"></script>

Если вы находитесь на домашней странице, wp-content/themes/twentyfourteen... может работать нормально. Но скажите, что вы на yoursite.com/about, тогда он считает, что URL-адрес для файла javascript равен yoursite.com/about/wp-content/themes/twentyfourteen...

Смысл?

+0

Использование wp_enqueue_script() - гораздо лучший способ добавить скрипты в WordPress. – DNACode

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