使用WordPress

时间:2017-02-12 19:59:31

标签: php wordpress

问题:当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 字段?提前致谢

1 个答案:

答案 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