save_post not working

时间:2014-01-30 作者:vajrasar

为了创建(或更新,无论何时更新帖子)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]
*****/

1 个回复
SO网友:Akshay Paghdar

尝试以下操作:

add_action( \'save_post\', \'vg_update_timestamp\', 0, 1 );
也许这会有帮助。。。

我想我犯了一个小错误。。。但我对优先顺序有点困惑。。。

所以试试这个:

add_action( \'save_post\', \'vg_update_timestamp\', 10, 2 );
因为Docs说

较小的数字对应较早的执行,具有相同优先级的函数按照它们添加到操作的顺序执行。

结束

相关推荐

PERVICE_POSTS_LINK和NEXT_POSTS_LINK,如何将下一篇/上一篇文章的标题作为URL返回

我正在处理的站点需要以特定的方式设置返回的url。也就是说,所有帖子基本上都是发布的图像,其中的标题称为页面URL。如何获取从next\\u posts\\u link()和previous\\u posts\\u link返回的url作为mysite返回。com/posttitle?此时,我有两个div,用div和span包装。位于回路内 <div class=\"back-nav\"> <span class=\"button-na