为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
波斯汪 2023-09-08 17:14:35
我有一个从 API 获取一些数据的脚本,我需要将此数据(帖子数组)作为帖子插入到 WordPress 中。所以我需要做的是:检查每个帖子是否存在,以避免由post_name 或slug或title如果可能的话进行配音我已经在名为 的帖子中注册了自定义分类法newspaper ,并且我需要插入该报纸,无论它是什么title。我还使用帖子注册了自定义字段,键为 fifu_img_url,fifu_img_alt因此_cmb_link我需要一种方法将数据插入到每个帖子的这些键中这将在一个 REST API POST 请求中,我已经完成了 API 部分并通过 POST 请求接收数据,剩下的就是按照上面所述处理数据。
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

我已经通过以下方式做到了这一点


$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;

}


查看完整回答
反对 回复 2023-09-08
  • 1 回答
  • 0 关注
  • 56 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信