Php 用WordPress中的wp\u Update\u post更新
问题:更新WP字段post_日期时,也应该更新字段post_日期_gmt,但事实并非如此。我在其中一个插件中找到了进行更新的函数: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_
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');