我有一个自定义帖子类型,我想根据我在名为“交货日期”的自定义字段中输入的日期输出两个元框(“delivery_date”和“orderby_date”)。除了让交货日期填充“delivery_date”框中之外,我还希望它通过计算以在“orderby_date”框中显示订购日期。有没有办法用 update_post_meta 来做到这一点?
这是我的交货日期元框的代码:
<?php
function wpt_single_menu_deliverydate() {
global $post;
echo '<input type="hidden" name="singlemenumeta_noncename" id="singlemenumeta_noncename" value="' .
wp_create_nonce( plugin_basename(__FILE__) ) . '" />';
$deliver = get_post_meta($post->ID, '_deliverydate', true);
echo '<input type="datetime-local" name="_deliverydate" value="' . $deliver . '" class="widefat" />';
} ?>
这是我的代码,用于根据该数据输出两个自定义元框(在我的保存元函数中):
<?php
if(get_post_meta($post->ID, $key, FALSE)) {
update_post_meta($post->ID, $key, $value);
update_post_meta( $post_id, 'delivery_date', stripslashes( $_POST['_deliverydate'] ) );
update_post_meta( $post_id, 'orderby_date', stripslashes( $_POST['orderby_date'] ) );
?>
我的问题是如何组合
date('Y-m-d', strtotime('-1 week last Sunday'));
因此我的订购日期是交货日期之前的星期日?
不可否认,我是一个菜鸟,从看起来相关的片段中拼凑出代码。我的解决方案是添加第二个“update_post_meta”并添加日期(strtotime())以将值返回到我创建的自定义字段中。然后我为该实例创建了一个参数,这样我就可以修改第二个实例的日期。
这有效:
if(get_post_meta($post->ID, $key, FALSE)) {
update_post_meta( $post_id, 'delivery_date', stripslashes( $_POST['delivery_date'] ) );
update_post_meta( $post_id, 'delivery_date', date("Y-m-d", strtotime( $_POST[('_deliverydate')] )) );
$delivery = date("Y-m-d", strtotime( $_POST[('_deliverydate')] ));
update_post_meta( $post_id, 'orderby_date', stripslashes( $_POST['orderby_date'] ) );
update_post_meta( $post_id, 'orderby_date', date("Y-m-d", strtotime( "$delivery - 1 week last Sunday" )) );
因此,在我的新交付日期元框中输入日期并更新我的帖子后,将创建两个自定义字段。一个返回“交货日期”元框的值,另一个转换为前最后一个星期日以返回我的订购日期。