2013-07-12 32 views
0

所以我有一個帖子元字段有兩個值,true或false。它默認爲false,當事件發生時會自動變爲true。記錄帖子元字段更改的時間/日期WordPress

無論如何,是否有可能創建另一個元字段來記錄此更改發生的確切時間?如果是這樣,我將如何去做這件事?

+0

Pleae提供更多信息:指定事件發生的地方。前端(主題/插件)/後端? –

+0

該字段被稱爲「已播出」。當另一個自定義帖子類型帖子被創建時,它被檢查爲真。該自定義帖子類型帖子具有稱爲「父ID」的元字段。無論哪個父母ID位於該字段中,該帖子都會將其「已播放」從false變爲true。 – Maaz

+0

這是功能。強大的是用在前端。 http://pastebin.com/wDL3utHh – Maaz

回答

1

沒有修改wordpress核心或覆蓋主題functions.php中的update_field()函數,您無法順利獲取記錄添加到數據庫的時間。

但是我可以給你的建議:

1)如果你的應用在很大程度上取決於秒:毫秒時post_meta已被修改,應使用先進的技術:數據庫事務

2)如果你的應用是罰款撰寫1元和第二隻是add_post_meta()下方添加它之間有一個小的延遲update_field()進行

PS如果你認爲覆蓋使用的functions.php的功能你喜歡的方式只是給我發一條評論,我會盡力通過編輯帖子來幫助你。

乾杯!

編輯

緊接着用allready_aired字段中輸入您的操作進行

$alreadyAired = get_field('already_aired', $episodeID); 

    if (get_field('already_aired', $episodeID) == "no") { 
     update_field('field_28', "yes", $episodeID); 
    } 

,你可以在這樣的方式使用add_post_meta($post_id, $meta_key, $meta_value, $unique)功能:

$alreadyAired = get_field('already_aired', $episodeID); 

    if (get_field('already_aired', $episodeID) == "no") { 
     update_field('field_28', "yes", $episodeID); 
    } 

    add_post_meta($episodeID, 'NEW_TIMESTAMP_FIELD', time(), true); 

然後,你可以調用這個NEW_TIMESTAMP_FIELD並以您喜歡的方式使用(回顯格式化的日期字符串,比較兩個日期等。

請注意add_post_meta函數的第4個參數。這個告訴你這個字段是唯一的,考慮到app_post_meta不會影響「更新」操作,這個包不會讓這個字段在第二次修改。

+0

我只需要在第一篇文章觸發自動化時記錄的時間。時間可以類似於發佈日期的工作方式。我相信發佈日期記錄可達數分鐘。我猜想秒數不會太差。有點拖延不會是一個擔心。我只是需要在觸發發生的第一次進行記錄。如果它被記錄下來,那麼下一次發生時,它不應該改變原始值。 – Maaz

+0

請參閱下面的編輯。希望我正確理解你的問題。 –

+0

完美!謝謝,我猜如果條件增加不會太糟糕,如 如果元值爲空,只有然後addpost元,如果不是,則跳過它。 – Maaz

相關問題