Я обращаюсь к этому удивительному сообществу, после нескольких попыток исправить эту ошибку, моя проблема очень проста, но она дошла до меня. Я пытаюсь вставить сценарий Java в свой Theme my Plugin при использовании темы evolve.
вот фрагмент кода, который делает это, и я использовал глобальную функцию, чтобы проверить, загружена ли функция, и она не загружается. 'a' не меняется на true.
По какой-то причине это выглядит так: wp_enqueue_scripts не работает. Я также попытался добавить wp_head() без везения.
<?php
$GLOBALS['a'] = 'false';
add_action( 'wp_enqueue_scripts', 'load_location' );
function load_location() {
$GLOBALS['a'] = 'true';
wp_register_script('load_location_test',get_template_directory_uri().'/load_location.js', array('jquery'),'1.1',true);
wp_enqueue_script('load_location_test');
}
?>
<?php echo $GLOBALS['a'] ?>;
Спасибо, советую
Таким образом, чтобы ваша очередь работала, вам нужно добавить код в файл functions.php
или в свой плагин.
add_action( 'wp_enqueue_scripts', 'load_location' );
function load_location() {
wp_register_script('load_location_test',get_template_directory_uri().'/load_location.js', array('jquery'),'1.1',true);
wp_enqueue_script('load_location_test');
}
Это добавит JS файл на все ваши страницы. Если вы хотите настроить таргетинг на определенную страницу, вы можете сделать это через JavaScript или непосредственно в своем PHP файле.
Если ваша тема использует body_class()
, вы можете настроить таргетинг на эту конкретную страницу по классу. Затем вы должны обернуть свой JS следующим образом:
if( $('body.classUsed').length ){
// Your JS code here
}
Обратите внимание, что файл все равно будет помечен в очередь. В качестве альтернативы, если вы хотите добавить JS файл только на указанную страницу, вы можете обернуть его в состоянии is_page()
:
add_action( 'wp_enqueue_scripts', 'load_location' );
function load_location() {
if( is_page('your-page') ){
wp_register_script('load_location_test',get_template_directory_uri().'/load_location.js', array('jquery'),'1.1',true);
wp_enqueue_script('load_location_test');
}
}
Вы должны посмотреть на документы или на файлы других плагинов, пошаговые руководства в Интернете и т.д., Чтобы понять больше. wp_enqueue_scripts - это трюк, который вы используете для загрузки вашего Javascript, и у вас есть основная правильная идея, но попробуйте что-то подобное в ваших функциях.php:
function my_custom_scripts() {
wp_register_script( 'custom-js', 'js/custom.js' );
wp_enqueue_script( 'custom-js', 'js/custom.js', false );
}
add_action( 'wp_enqueue_scripts', 'my_custom_scripts' );
Измените "js/custom.js" везде, где ваш каталог имеет ваш JS файл.
Другой вариант, если это слишком сложно, заключается в прямой ссылке на JS файл в нижней части вашего footer.php. Подобно <script src="/file.js"></script>
.
Иногда я нахожу, что скриптовые скрипты немного странные, но надеюсь, что это поможет вам разобраться.
functions.php