【问题标题】:Add multiple dates to custom post type in Wordpress在 Wordpress 中为自定义帖子类型添加多个日期
【发布时间】:2014-08-09 18:40:06
【问题描述】:

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

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

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

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

谢谢!

【问题讨论】:

  • 高级自定义字段有一个高级插件来执行可重复字段。 Custom Content Type Manager 是免费的,但设置起来有点困难。

标签: php wordpress wordpress-theming


【解决方案1】:

实现这一目标的步骤:

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

现在,详细说明

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

在其 HTML 中添加元框并设置多选日期选择器。使用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))。由于日期以逗号格式保存。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 谢谢,很高兴知道。但存储日期并不是主要问题。问题是如何分配多个日期以在 wordpress 管理员中发布。我对自定义元框不是很熟悉。
    猜你喜欢
    • 2018-02-23
    • 2021-05-22
    • 2014-11-02
    • 1970-01-01
    • 2012-12-03
    • 2015-10-04
    • 2016-04-04
    • 2012-04-10
    • 1970-01-01
    相关资源
    最近更新 更多