Проблемы с получением jquery datepicker для работы в плагине Wordpress - PullRequest
0 голосов
/ 04 июля 2019

Я новичок в jquery и php и пытаюсь создать свой первый плагин для Wordpress.Плагин просто добавляет метабокс к сообщениям с полем даты на бэкэнде.

Метабокс и поле все добавляются нормально, и появляются, когда я иду, чтобы создать или отредактировать сообщение.

Однако я не могу заставить работать средство выбора даты.Ничего не происходит, когда вы нажимаете на поле ввода, селектор даты не отображается.Хотя в поле ввода можно вводить только цифры, а не буквы.

Плагин представляет собой одну страницу php-кода.

В верхней части файла плагина пытается загрузить jquery:

function ca_load_jquery_datepicker() { 
    wp_enqueue_script('jquery-ui-datepicker');
    wp_enqueue_style('jquery-style', 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css');
}
add_action( 'admin_enqueue_scripts', 'ca_load_jquery_datepicker' );

Тогда это входные данные и jquery в моей форме (ниже в файле плагина):

<input type="text" class="date" name="ca_expiry_date" value="">

        <script type="text/javascript">
            jQuery(document).ready(function($) {
                $('.date').datepicker({
                    dateFormat : 'yy-mm-dd'
                });
            });
        </script> 

Может кто-нибудь помочь сообщить, где я ошибаюсь с указателем даты?Спасибо!

ОБНОВЛЕНИЕ

Спасибо за комментарии, я обнаружил, что, если я устанавливаю плагин "Classic Editor", мой код работает.Но когда он не активирован и не использует Gutenberg, он не работает.

Ошибка (без разделения URL сайта): GET https://xxxx.co.uk/wp-content/themes/publisher/gutenberg-7.6.2.min.css?ver=7.6.2 net :: ERR_ABORTED 404 (Не найдено)

Эта ошибка все еще существует, даже когда мой плагин отключен.

Однако, если я активирую тему Twenty Nineteen, ошибки не возникает, но поле даты в моем плагине все еще не работает.

Так ясно, что Гутенбергу не нравится что-то в моем коде ...

1 Ответ

0 голосов
/ 05 июля 2019

Я бы обязательно зарегистрировал весь пакет jquery-ui из удаленного официального источника в functions.php вашей текущей темы, например:

function ca_load_jquery_ui() {
    // first, register the style from the remote official source
    wp_register_style('jqueryuicss', '//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.min.css', array('jquery-ui-styles'), '1.12.1');
    wp_enqueue_style('jqueryuicss');
    // then, register the core file from the remote official source, in footer
    wp_register_script('jqueryui', '//code.jquery.com/ui/1.12.1/jquery-ui.min.js', array('jquery-ui'), '1.12.1', true);
    wp_enqueue_script('jqueryui');
}
add_action( 'wp_enqueue_scripts', 'ca_load_jquery_ui' );

Примечание: , если вы хотите использовать календарь в веб-интерфейсе, обязательно используйте функцию add_action( 'wp_enqueue_scripts', 'xxx' ); вместо add_action( 'admin_enqueue_scripts', 'xxx' );, которая предназначена только для администраторов.


UPDATE

Вы также можете попытаться отключить jQuery или jQuery-ui по умолчанию, чтобы проверить, помогает ли это:

//remove the default jQuery script
function remove_default_jquery(&$scripts){
    if(is_admin()){
        // try this...
        $scripts->remove('jquery');
        // or...
        $scripts->remove('jquery-ui');
    }
}
add_filter( 'wp_default_scripts', 'remove_default_jquery' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...