更改WordPress自定义域默认日历

时间:2019-04-06 作者:hessam hosseinipour

我有一个自定义的帖子类型,叫做X,

Post type X有一些自定义字段,其中一个自定义字段是date,

<input type="date" name="date_added" id="date_added" class="regular-text" value="<?php echo get_post_meta($post->ID,\'date_added\',true ); ?>">
当我想填写这个字段时,WordPress会给我一个日历(很好),

我想更改此日历的时区(波斯日历),

如果有人帮助我,我将不胜感激。

2 个回复
最合适的回答,由SO网友:butlerblog 整理而成

您所指的日历不是WordPress提供的。您使用的是“日期”输入字段类型,它是HTML5输入规范。日历是基于此从浏览器中获取的。

如果您的问题是关于输入本身的时区偏移量(那么输入会显示什么),那么您应该注意,HTML5“date”输入没有时区偏移量。永远是格林尼治时间。

Option 1: HTML5 "datetime-local"

一种可能是使用输入类型“datetime local”(不要使用“datetime”,因为这是一种不推荐使用的字段类型),但请记住,这可能不会实际提供您想要的内容,因为时区将是用户的时区。如果您的所有用户都在同一时区,那么这可能是一个解决方案:

<input type="datetime-local" name="date_added" id="date_added" class="regular-text" value="<?php echo get_post_meta($post->ID,\'date_added\',true ); ?>">

Option 2: jQuery UI datepicker

更好的解决方案可能是使用jQuery UI日期选择器(WordPress中包含了它)。然而,默认情况下这也是GMT,很难根据时区偏移进行调整。不幸的是,我不能给你一个时区偏移的例子,但为了让你开始使用它,请在函数中添加以下内容。php:

add_action(\'wp_enqueue_scripts\', \'my_add_jquery_datepicker\');
function my_add_jquery_datepicker() {
    wp_enqueue_script( \'jquery\' );
    wp_enqueue_script( \'jquery-ui-datepicker\' );
    $css = wp_register_style( \'jquery-ui\', \'//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css\' );
    wp_enqueue_style(  \'jquery-ui\', $css );
}
然后,要使用它,请添加一些jQuery以将字段的ID附加为datepicker字段。为了给你一个简单的工作示例,这里有一个快速而肮脏的方法通过wp_head (如果使用,您应该以更好的方式实现):

add_action( \'wp_head\', function() {
    ?>
    jQuery(document).ready(function($) {
        $( "#date_added" ).datepicker();
    });
    <?php 
});
一旦您能够实现jQuery datepicker,就有一些关于如何实现该日期的时区偏移的示例。谷歌是你的朋友stackoverflow).

Or... leave the input as GMT and store as timezone offset

然而,需要注意的是,如果您想根据特定的时区偏移量调整用户输入的内容,可以将默认值作为GMT,并根据偏移量进行调整。请记住,这不是“最佳做法”,因为日期/时间实际上应该存储为GMT,并在显示时进行调整。

SO网友:Mulli

不确定这是完整的答案,但请尝试

        date_default_timezone_set(\'Asia/Jerusalem\');
用准确的波斯区域词替换耶路撒冷。

相关推荐

jQuery UI & Admin (Calendar)

我是在吸快克烟还是这不管用?:/这一切似乎都很简单:function admin_head() { ?> <link type=\"text/css\" rel=\"stylesheet\" href=\"<?php bloginfo(\'template_url\'); ?>/css/jquery-ui-1.8.9.custom.css\" /> <script type=\"text/javascript\" src=\"