WordPress忽略'post_status'更新

时间:2019-08-08 16:57:22

标签: php wordpress custom-wordpress-pages

我有两个功能,createNewsletter()saveNewsletter($data)。我在post_status表上得到了错误的wp_posts值。

似乎在wp_publish_post( $data->id );之后添加了wp_update_post,但是我不清楚为什么WP在用post_status“强制”执行时不更新wp_insert_postwp_update_post WP函数。

我注意到它开始从数组定义中删除post_date

这是我的职能

对于第一个,我将一些数据放入数组中,以便通过WP插入函数将其添加到db中:

$new_post = array(
    'post_title' => 'Newsletter del '.$date,
    'post_content' => "",
    'post_status' => 'publish',
    'post_date' => current_time('Y-m-d H:i:s'),
    'post_author' => $loggedUser->ID,
    'post_type' => 'newsletter',
    'post_category' => array(0)
);

$post_ID = wp_insert_post($new_post);

第二个我想保存对新闻通讯的任何修改并更新相应的字段:

$update_args = array(
    'ID' => $data->id,
    'post_title' => $data->properties->title,
    'post_status' => 'publish',
    'post_date' => date('Y-m-d H:i:s'),
    'post_author' => $loggedUser->ID
);

$result = wp_update_post($update_args);

在两种情况下,我都希望在数据库记录中得到post_status = publish,但是在执行第一个或第二个功能。

1 个答案:

答案 0 :(得分:0)

我注意到不通过post_date是最好的选择。

future之所以被设置,是因为我使用wp_insert_post($new_post);时的时间戳使用current_time(),即将来的时间(从现在开始+2小时)。

另一个仍然有效的选项是wp_publish_post( $data->id );,它可以强制设置publish的状态。