在 WordPress 中向自定义帖子类型添加多个日期

Mac*_*kou 3 php wordpress wordpress-theming

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

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

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

对于将多个日期(提前不知道多少个)添加到自定义帖子类型,您有何建议?是分类法还是帖子元数据?是否有带有内置日期输入验证或日期选择器的日期类型元数据?

谢谢你!

Abh*_*rma 5

实现这一目标的步骤:

  1. 添加元框
  2. 添加多选日期选择器
  3. 保存元值
  4. 获取元值

现在,详细介绍

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

在 HTML 中添加元框并设置多选日期选择器。使用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 /sf/ask/1235623651/
    // for multiselect datebox.
   echo '<input type="date" id="datePick" name=save-dates/>';
}
add_action( 'add_meta_boxes', 'myplugin_add_meta_box' );
Run Code Online (Sandbox Code Playgroud)

保存元值

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' );
Run Code Online (Sandbox Code Playgroud)

获取元值

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

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