Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用WordPress中的wp\u Update\u post更新_Php_Wordpress - Fatal编程技术网

Php 用WordPress中的wp\u Update\u post更新

Php 用WordPress中的wp\u Update\u post更新,php,wordpress,Php,Wordpress,问题:更新WP字段post_日期时,也应该更新字段post_日期_gmt,但事实并非如此。我在其中一个插件中找到了进行更新的函数: function KBM_Reposter_move_oldest_post($kbm_Reposter_Catagory_ID) { global $logrr; $logrr -> logDebug("Start: " . __FUNCTION__); $kbm_Reposter_Get_Post_Arguments = array('post_

问题:更新WP字段post_日期时,也应该更新字段post_日期_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字段?提前感谢

更改此项:

$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,更多信息请参见此处:

更改此参数:

$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,这里有更多信息:

使用该函数将post_date_GMT包含与post_date相当的GMT?是的,完全正确。如果您不希望gmt等效,而只希望与post_date中的日期相同,请使用$kbm_Reposter_olester_post->post_date_gmt=date_i18n('Y-m-d H:i:s');有了它,post_date(发布日期)将包含与post_date(发布日期)相等的gmt吗?是的,没错。如果您不希望gmt等效,而只希望与post_date中的日期相同,请使用$kbm_Reposter_olester_post->post_date_gmt=date_i18n('Y-m-d H:i:s');