WordPress添加一个时间字段带格式

WordPress添加一个时间字段带格式

在WordPress中添加一个带有特定格式的时间字段,你可以使用内置的DateTime类或者使用WordPress的date函数。以下是一个简单的例子,展示了如何在WordPress后台添加一个带有格式的时间字段:

/** WordPress添加一个时间字段带格式 **/
// 在functions.php文件中添加以下代码
// 添加一个新的meta box
function add_custom_meta_box() {
    add_meta_box('custom_time_meta_box', '自定义时间', 'render_custom_time_meta_box', 'post', 'normal', 'high');
}
add_action('add_meta_boxes', 'add_custom_meta_box');
 
// 渲染meta box的回调函数
function render_custom_time_meta_box($post) {
    // 获取已保存的时间值,如果没有则设置一个默认值
    $saved_time = get_post_meta($post->ID, 'custom_time', true) ? get_post_meta($post->ID, 'custom_time', true) : date('H:i');
    // 使用WordPress的时间输入字段
    ?>
    <input type="text" name="custom_time" id="custom_time" value="<?php echo esc_attr($saved_time); ?>">
    <?php
}
 
// 保存meta box数据的回调函数
function save_custom_time_meta($post_id) {
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
    if (!current_user_can('edit_post', $post_id)) return;
 
    // 检查非空和正确的时间格式
    if (isset($_POST['custom_time']) && $_POST['custom_time']) {
        $time = sanitize_text_field($_POST['custom_time']);
        if (DateTime::createFromFormat('H:i', $time) !== false) {
            update_post_meta($post_id, 'custom_time', $time);
        }
    }
}
add_action('save_post', 'save_custom_time_meta');

这段代码将会添加一个新的meta box到WordPress的所有post类型中,允许用户输入时间(时:分)格式。保存后,这个时间会以文章的元数据保存起来。

请确保将这段代码添加到你的WordPress主题的functions.php文件中。如果你正在使用插件来添加自定义字段,那么你需要将相关的代码放入插件文件中。

提示:仅供参考