javascript — не могу зарегистрировать функцию WordPress

Как бы я ни старался, я не могу успешно зарегистрировать свою функцию в WordPress.

В настоящее время я сделал следующее:

Добавлен код в темах functions.php

function test_my_script() {
wp_register_script( 'custom-script', get_template_directory_uri() . '/js/gls-enable.js', array( 'jquery' ) );
wp_enqueue_script( 'custom-script' );
}

add_action( 'wp_enqueue_scripts', 'test_my_script' );

Добавлен мой скрипт в папку тем /js/gls-enable.js

jQuery(document).ready(function($) {
$("shipping_method_0_flat_rate").change(function () {
if ($("#shipping_method_0_flat_rate").is(":checked")) {
window.alert("sometext");
});
});

Называется мой скрипт на странице где я хочу чтобы он работал

<?php test_my_script(); ?>

Когда я просматриваю источник на упомянутой странице, сценарий нигде не встречается.

0

Решение

Вы хотите избавиться от register_script:

function test_my_script() {
wp_enqueue_script( 'custom-script', get_template_directory_uri() . '/js/gls-enable.js', array( 'jquery' ) );
}

add_action( 'wp_enqueue_scripts', 'test_my_script' );

Кроме того, ваш скрипт будет автоматически помещен в очередь, когда 'wp_enqueue_scripts' Хук действия называется. Вам не нужно явно вызывать его в своем шаблоне через php.

Там также ошибка в вашем синтаксисе jQuery. Так должно быть:

jQuery(document).ready(function(){
$("#shipping_method_0_flat_rate").change(function(){
if ( $("#shipping_method_0_flat_rate").is(":checked") ) {
window.alert("sometext");
}
});
});
0

Другие решения

Прежде всего вам не нужно называть это test_my_script() внутри вашей страницы. Это крюк для wp_enqueue_scripts и он автоматически загружается WordPress, и это означает, что ошибка должна быть в JavaScript.

Вот : $("shipping_method_0_flat_rate")., добавить # или же . (если это идентификатор или имя класса);

Возможно, проблема в том, чтобы зарегистрировать это действие в php, поэтому лучше установить WP_DEBUG в true (корень вашего WordPress и редактировать wp-config.php )

Если вы получили ошибки после установки WP_DEBUG чтобы их решить, а также опубликуйте сообщение об ошибке в консоли (вы должны иметь: D)

И это хорошая практика, чтобы загрузить все файлы JavaScript в нижнем колонтитуле (этот файл загружается в заголовок). Может быть, JQuery находится в нижнем колонтитуле и gls-enable.js загружается до jquery.

Чтобы загрузить это в нижний колонтитул:

wp_register_script( 'custom-script', get_template_directory_uri() . '/js/gls-enable.js', array( 'jquery' ), '1.0', true );
0

По вопросам рекламы [email protected]