我正在构建一个包含网页,帖子和活动的Wordpress网站(您可以登录多个日期)。我是Wordpress的新手,所以我一直在为这个活动寻找理想的解决方案。
我认为最好的解决方案是创建名为“Event”的自定义帖子类型,然后单独处理。
但我不确定如何为每个事件添加多个日期。我一直在阅读有关自定义分类和发布元数据的内容,但我所经历的每个示例都类似于创建自定义类别,标记或向帖子添加单个值。
您建议在自定义帖子类型中添加多个日期(不知道提前多少个)?是分类法还是后元数据?是否有类型为date的元数据,内置日期输入验证或datepicker?
谢谢!
答案 0 :(得分:3)
现在,详情
添加Meta Box&在其HTML中设置多选择Datepicker。使用jQuery date picker multi select and unselect添加多选日期选择器。
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))
。日期以逗号格式保存。
答案 1 :(得分:0)
Wordpress方式可能是将日期存储为自定义帖子类型的元数据中的序列化数组(google:php serialize)。如果您需要搜索日期,最好将每个日期存储为后元数据中的裸数据(不是序列化数组)。要记住的一件事是,如果这个站点需要l18n(多语言,语言环境支持)日期可能会变得棘手!查找(Wordpress,l18n,日期)。如果需要进行任何排序,请考虑将日期存储为unix时间戳。