Php 让jquery日期选择器在Wordpress插件中工作时出现问题

Php 让jquery日期选择器在Wordpress插件中工作时出现问题,php,jquery,wordpress,Php,Jquery,Wordpress,我是jquery和php新手,正在尝试创建我的第一个Wordpress插件。 该插件只需在后端有日期字段的帖子中添加一个元框 Metabox和字段均已添加“确定”,并在我创建或编辑帖子时显示 然而,我无法让日期选择器工作。当您单击输入框时不会发生任何事情,日期选择器不会显示。虽然输入框只允许我输入数字而不是字母 该插件是一页php代码 我的插件文件顶部尝试加载jquery: function ca_load_jquery_datepicker() { wp_enqueue_script

我是jquery和php新手,正在尝试创建我的第一个Wordpress插件。 该插件只需在后端有日期字段的帖子中添加一个元框

Metabox和字段均已添加“确定”,并在我创建或编辑帖子时显示

然而,我无法让日期选择器工作。当您单击输入框时不会发生任何事情,日期选择器不会显示。虽然输入框只允许我输入数字而不是字母

该插件是一页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(位于插件文件下方):


jQuery(文档).ready(函数($){
$('.date').datepicker({
日期格式:“yy-mm-dd”
});
});
有谁能告诉我,我在约会选择上哪里出了问题? 谢谢大家!

更新

谢谢你的评论,我发现如果我安装了“经典编辑器”插件,我的代码就能正常工作。但如果没有激活,使用古腾堡,它就不起作用

错误为(不共享站点url): GET net::ERR_中止404(未找到)

即使我的插件被禁用,这个错误仍然存在

然而,如果我激活了219主题,没有错误,但是我的插件中的日期字段仍然不起作用


因此,显然gutenberg不喜欢我的代码中的某些内容…

我会确保在当前主题的
functions.php
中注册来自远程官方源代码的整个jquery ui包,如下所示:

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')而不是
添加操作('admin_enqueue_scripts','xxx')仅适用于管理员端


更新

您还可以尝试禁用默认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' );

我会确保在当前主题的
functions.php
中注册来自远程官方源代码的整个jquery ui包,如下所示:

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')而不是
添加操作('admin_enqueue_scripts','xxx')仅适用于管理员端


更新

您还可以尝试禁用默认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' );

您是否在其他地方注册了jQueryUIDatePicker脚本(此处未显示)?如果没有,您需要这样做,或者用脚本所在文件的路径填写完整的队列。我认为您不必这样做,因为jquery是wordpress的一部分。但是我已经尝试了
wp\u-enqueue\u脚本('jquery-ui-datepicker','https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js');而不仅仅是
wp_enqueue_脚本('jquery-ui-datepicker')这没有什么区别。@user22030,看起来你的代码很好。您是否检查了浏览器控制台上是否存在脚本错误。如果有帮助,我更新了当前的答案?您的错误还可能意味着您的样式脚本有一个缓存系统(如特定的缓存插件)。如果是这样,您应该尝试清除它们并重试。您是否在其他地方注册了jquery ui日期选择器脚本,此处未显示?如果没有,您需要这样做,或者用脚本所在文件的路径填写完整的队列。我认为您不必这样做,因为jquery是wordpress的一部分。但是我已经尝试了
wp\u-enqueue\u脚本('jquery-ui-datepicker','https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js');而不仅仅是
wp_enqueue_脚本('jquery-ui-datepicker')这没有什么区别。@user22030,看起来你的代码很好。您是否检查了浏览器控制台上是否存在脚本错误。如果有帮助,我更新了当前的答案?您的错误还可能意味着您的样式脚本有一个缓存系统(如特定的缓存插件)。如果是这样,您应该尝试清除它们并重试。感谢您的建议,但删除默认jQuery似乎没有帮助。感谢您的建议,但删除默认jQuery似乎没有帮助。