繁体   English   中英

在Wordpress中为自定义帖子类型添加多个日期

[英]Add multiple dates to custom post type in Wordpress

我正在构建一个包含页面,帖子和事件的Wordpress站点(您可以登录多个日期)。 我是Wordpress的新手,所以我一直在为这个活动寻找理想的解决方案。

我相信最好的解决方案是创建名为“Event”的自定义帖子类型,然后单独处理它。

但我不确定如何为每个事件添加多个日期。 我一直在阅读有关自定义分类和发布元数据的内容,但我所经历的每个示例都是创建自定义类别,标记或向帖子添加单个值。

您建议在自定义帖子类型中添加多个日期(不知道提前多少个)? 是分类法还是后元数据? 是否有类型日期的元数据与内置日期输入验证或datepicker?

谢谢!

实现这一目标的步骤:

  1. 添加Meta Box
  2. 添加Multiselect Datepicker
  3. 保存元值
  4. 获得元价值

现在,详细

添加元框和添加多选日期选择器

在其HTML中添加Meta Box和Set Multi Select Datepicker。 使用jQuery日期选择器多选和取消选择添加多选日期选择器。

function myplugin_add_meta_box() {

    add_meta_box(
        'event-date',
        'Set Event Dates',
        'myplugin_meta_box_callback',
        'event'
    );
}
function myplugin_meta_box_callback(){
    // Set HTML here which you want to see under this meta box.
    // Refer https://stackoverflow.com/questions/17651766/jquery-date-picker-multi-select-and-unselect
    // for multiselect datebox.
   echo '<input type="date" id="datePick" name=save-dates/>';
}
add_action( 'add_meta_boxes', 'myplugin_add_meta_box' );

保存元值

function myplugin_save_postdata($post_id){
    if ( 'event' == $_POST['post_type'] ) {
        update_post_meta($post_id, 'save-dates', sanitize_text_field( $_REQUEST['save-dates'] ));
    }
}
add_action( 'save_post', 'myplugin_save_postdata' );

获得元价值

现在,无论您想要显示这些日期。 只需从数据库中检索它们并开始使用它们。 get_post_meta($post_id, 'save-dates',true);

在使用它们之前explode(',', get_post_meta($post_id, 'save-dates',true))不要忘记explode(',', get_post_meta($post_id, 'save-dates',true)) 日期以逗号格式保存。

Wordpress方式可能是将日期存储为自定义帖子类型的元数据中的序列化数组(google:php serialize)。 如果您需要搜索日期,最好将每个日期存储为后元数据中的裸数据(不是序列化数组)。 要记住的一件事是,如果这个站点需要l18n(多语言,语言环境支持)日期可能会变得棘手! 查找(Wordpress,l18n,日期)。 如果需要进行任何排序,请考虑将日期存储为unix时间戳。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM