WordPress:如何以编程方式创建帖子并在之前检查重复项

我有一个从 API 获取一些数据的脚本,我需要将此数据(帖子数组)作为帖子插入到 WordPress 中。

所以我需要做的是:

  1. 检查每个帖子是否存在,以避免由post_name 或slugtitle如果可能的话进行配音

  2. 我已经在名为 的帖子中注册了自定义分类法newspaper ,并且我需要插入该报纸,无论它是什么title

  3. 我还使用帖子注册了自定义字段,键为 fifu_img_urlfifu_img_alt因此_cmb_link我需要一种方法将数据插入到每个帖子的这些键中

这将在一个 REST API POST 请求中,我已经完成了 API 部分并通过 POST 请求接收数据,剩下的就是按照上面所述处理数据。


波斯汪
浏览 94回答 1
1回答

倚天杖

我已经通过以下方式做到了这一点$is_post_exists = post_exists($post->title);if ($is_post_exists === 0) {    $post_id = wp_insert_post(array(        'post_title'    => $post->title,        'post_date'     => $post->date,        'post_content'  => $post->excerpt,        'post_author'   => 1,        'post_status'   => 'publish',        'meta_input'    => array(            'fifu_image_url'   => $post->image,            'fifu_image_alt'   => $post->title,            '_cmb_link'        =>  $post->link,        )    ));    $termObj = get_term_by('name', $post->newspaper->title, 'newspaper');    set_post_format($post_id, $post->type);    if ($termObj) {        wp_set_object_terms($post_id, array($termObj->term_id), 'newspaper');    } else {        $new_newspaper = wp_insert_term($post->newspaper->title, 'newspaper');        wp_set_object_terms($post_id, array($new_newspaper['term_id']), 'newspaper');    }    if ($post_id) {        $added_posts[] = $post_id;    }} else {    $not_added_posts[] = $post->id;}
打开App,查看更多内容
随时随地看视频慕课网APP