出于某种原因,我很难将存储在元字段中的日期值转换为unix时间戳(然后再转换回来)。如果我将日期保存为字符串,一切正常,但如果我使用strtotime
它不会保存值。
我的工作代码如下所示:
<?php
add_action( \'add_meta_boxes\', \'rs_add_date\' );
function rs_add_date() {
add_meta_box( \'rs_add_date\', \'Date\', \'rs_add_date_create_meta_box\', \'concerts\', \'normal\', \'high\' );
}
function rs_add_date_create_meta_box( $post ) {
$date = get_post_meta($post->ID, \'rs_date\', true);
echo \'Choose a date for the event\';
wp_nonce_field( plugin_basename(__FILE__), \'rs_date_nonce\');
?>
<p>Date (dd/mm/yyyy) <input type="text" name="rs-date" id="rs-date" value="<?php echo $date; ?>"></p>
<?php
}
// Save the new meta
add_action(\'save_post\', \'rs_date_save_meta\');
function rs_date_save_meta( $post_id ) {
if(!wp_verify_nonce( $_POST[\'rs_date_nonce\'], plugin_basename(__FILE__) ) )
return;
if(!current_user_can(\'edit_posts\') )
return;
$date = $_POST[\'rs-date\'];
update_post_meta($post_id, \'rs_date\', $date);
}
?>
但如果我将其更改为以下内容,则不会起作用:
<?php
add_action( \'add_meta_boxes\', \'rs_add_date\' );
function rs_add_date() {
add_meta_box( \'rs_add_date\', \'Date\', \'rs_add_date_create_meta_box\', \'concerts\', \'normal\', \'high\' );
}
function rs_add_date_create_meta_box( $post ) {
$date = get_post_meta($post->ID, \'rs_date\', true);
$date = time("d/m/Y", $date);
echo \'Choose a date for the event\';
wp_nonce_field( plugin_basename(__FILE__), \'rs_date_nonce\');
?>
<p>Date (dd/mm/yyyy) <input type="text" name="rs-date" id="rs-date" value="<?php echo $date; ?>"></p>
<?php
}
// Save the new meta
add_action(\'save_post\', \'rs_date_save_meta\');
function rs_date_save_meta( $post_id ) {
if(!wp_verify_nonce( $_POST[\'rs_date_nonce\'], plugin_basename(__FILE__) ) )
return;
if(!current_user_can(\'edit_posts\') )
return;
$date = $_POST[\'rs-date\'];
$date = strtotime($date);
update_post_meta($post_id, \'rs_date\', $date);
}
?>
在这里抓我的头!干杯