为了创建(或更新,无论何时更新帖子)unix时间戳元,我使用以下代码启动save\\u post。我将此代码粘贴到函数中。php。
但我相信这是行不通的,因为我无法在自定义模板的任何位置访问由save\\u post-in-loop创建的相关unix元。
EDIT: 在回答和评论之后,我在save\\u post hook事件中添加了优先级和参数,并更新了检索方式。现在的问题似乎如下所示-创建帖子时,save\\u帖子不会触发,但如果我更新帖子(创建后),save post会触发。
另外,在更新时(在创建后的任何时候),如果我更改开始日期和结束日期的值,它不会反映,它总是使用创建帖子时使用的值。
代码-
function vg_update_timestamp( $post_id, $post ) {
$offerstartdate = get_post_meta($post_id, \'offer_cmb_offer_from_textdate\', true); //not unix timestamp
$offerenddate = get_post_meta($post_id, \'offer_cmb_offer_till_textdate\', true); //not unix timestamp
$timestamp_start = strtotime( $offerstartdate );
$timestamp_end = strtotime( $offerenddate );
update_post_meta($post_id, \'offer_cmb_offer_from_textdate_unix\', $timestamp_start );
update_post_meta($post_id, \'offer_cmb_offer_till_textdate_unix\', $timestamp_end );
}
add_action( \'save_post\', \'vg_update_timestamp\', 0, 2 );
在模板(自定义模板)中,我使用以下代码检索字段-
$unix_version_s = get_post_meta($post->ID, \'offer_cmb_offer_from_textdate_unix\', true);
$unix_version_e = get_post_meta($post->ID, \'offer_cmb_offer_till_textdate_unix\', true);
$unix_start = strtotime($unix_version_s);
$unix_end = strtotime($unix_version_e);
/******
Converting date to desired format
**************************************/
$offerstartdate = gmdate("l, M j, Y", $unix_start);
$offerenddate = gmdate("l, M j, Y", $unix_end);
/*****
and then am using $offerstartdate and $offerenddate wherever needed, but its returning Jan 1, 1970 [which i think is because the value is zero or nill]
*****/