我有两个功能,createNewsletter()
和saveNewsletter($data)
。我在post_status
表上得到了错误的wp_posts
值。
似乎在wp_publish_post( $data->id );
之后添加了wp_update_post
,但是我不清楚为什么WP在用post_status
“强制”执行时不更新wp_insert_post
或wp_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
,但是在执行第一个或第二个功能。
答案 0 :(得分:0)
我注意到不通过post_date
是最好的选择。
future
之所以被设置,是因为我使用wp_insert_post($new_post);
时的时间戳使用current_time()
,即将来的时间(从现在开始+2小时)。
另一个仍然有效的选项是wp_publish_post( $data->id );
,它可以强制设置publish
的状态。