问题:当WP字段 post_date 更新时,字段 post_date_gmt 也应该更新,但事实并非如此。我在其中一个插件中找到了正在进行更新的函数:
function KBM_Reposter_move_oldest_post($kbm_Reposter_Catagory_ID) {
global $logrr;
$logrr -> logDebug("Start: " . __FUNCTION__);
$kbm_Reposter_Get_Post_Arguments = array('post_type' => 'post', 'numberposts' => 1, 'category' => $kbm_Reposter_Catagory_ID, 'post_status' => 'publish', 'orderby' => 'post_date', 'order' => 'ASC');
$kbm_Reposter_Old_Posts = get_posts($kbm_Reposter_Get_Post_Arguments);
if ($kbm_Reposter_Old_Posts) {
foreach($kbm_Reposter_Old_Posts as $kbm_Reposter_Oldest_Post) {
$kbm_Reposter_Oldest_Post->post_date = date_i18n('Y-m-d H:i:s');
$result = wp_update_post($kbm_Reposter_Oldest_Post);
if (!is_wp_error($result) AND $result > 0) {
$logrr -> logNotice("Post updated, id=$result");
}
}
} else {
$logrr -> logNotice("No post found for repost!");
}
$logrr -> logDebug("End: " . __FUNCTION__);
}
wp_update_post更新字段。我认为需要改变的是:
$kbm_Reposter_Oldest_Post->post_date = date_i18n('Y-m-d H:i:s');
如何使用与wp_update_post相同的日期更新 post_date_gmt 字段?提前致谢
答案 0 :(得分:0)
改变这个:
$kbm_Reposter_Oldest_Post->post_date_gmt = date_i18n('Y-m-d H:i:s');
到这个
$kbm_Reposter_Oldest_Post->post_date = date_i18n('Y-m-d H:i:s');
$kbm_Reposter_Oldest_Post->post_date_gmt = date_i18n('Y-m-d H:i:s',false,true);
这也将设置gmt字段。这里的date_i18n函数已经将时间转换为GMT时间,因为第三个参数设置为true,更多内容在此处:https://codex.wordpress.org/Function_Reference/date_i18n