【wordpress(datepicker在小部件选项页面上有效,但在定制器上无效)】我有一个带有日期选项字段的窗口小部件, 该窗口小部件在仪表板中时可以正常工作, 但在主题定制器上时却无法显示。
我像这样在form()方法中声明了该字段(一个用于日期选择器的输入字段, 另一个用于altField的输入字段):
$form .= '<
span class="widget-field">
';
$form .= sprintf(
'<
label for="%1$s">
%2$s<
/label>
<
input type="text" data-type="date" id="%1$s" name="%3$s" value="http://www.srcmini.com/%4$s" class="date-picker widefat" >
', $this->
get_field_id( 'start-date-picker' ), __( 'From:', 'yosilosetheme' ), $this->
get_field_name( 'start-date-picker' ), $start_v );
$form .= sprintf(
'<
input type="hidden" id="%1$s" name="%2$s" value="http://www.srcmini.com/%3$s" class="realdata-date-picker widefat" >
', $this->
get_field_id( 'start-date' ), $this->
get_field_name( 'start-date' ), $instance['start-date'] );
$form .= '<
/span>
';
在” admin_enqueue_scripts” 中, 将jquery-datepicker放入队列, 并使用以下方式获取样式:
wp_register_style('jquery-ui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css');
wp_enqueue_style( 'jquery-ui' );
和
wp_register_script( $this->
_token . '-settings', esc_url( $this->
assets_url ) . 'js/settings.js', array( 'jquery', 'jquery-ui-core', 'jquery-ui-datepicker' ), $this->
_version );
wp_enqueue_script( $this->
_token . '-settings' );
settings.js持有它来查找日期选择器字段并激活它们:
$('body').on('focus', ".date-picker", function () {
$(this).datepicker(
$.extend({
altField: $(this).parent().find('.realdata-date-picker'), altFormat: 'yymmdd'
}, $.datepicker.regional['es'])
);
});
同样, 所有这些词都完美且符合仪表板上的预期, 但不会在主题定制器中显示日历。我看到所有适当的文件都已加载(jquery, jquery-ui样式, datepicker.js等);在调试器上, 我可以看到当专注于这些字段时, 它确实触发了datepicker()调用……但仍然没有。
有人对发生的事情有所了解吗? (WordPress 4.1)
#1问题是WP主题定制器的疯狂z索引为500000, 并且datepicker弹出窗口具有相对于其输入的每次调用动态设置的z索引。
最终添加:
.wp-customizer div.ui-datepicker {
z-index: 500001 !important;
}
到我的CSS, 问题解决了。
推荐阅读
- 编辑页面中的WordPress仪表板显示选项
- WordPress自定义主题(小部件区域无法在定制程序中配置)
- WordPress自定义主题将转到404.php
- WordPress的自定义主题-更改将资源文件夹路径
- WordPress自定义主题-应用更新
- 带有分页功能的WordPress自定义帖子类型类别视图
- WordPress自定义帖子页面未显示
- WordPress-无限滚动自定义分页
- WordPress自定义选项未保存