以编程方式创建帖子

参数

下一个表显示了可以在第一个参数(Array)中使用的元素列表。

参数 描述
ID (Int)帖子 ID。如果等于 0 以外的其他内容,则将更新具有该 ID 的帖子。默认值为 0。
post_author (Int)添加帖子的用户的 ID。默认值是当前用户 ID。
发布日期 (字符串)帖子的日期。默认为当前时间。
post_date_gmt (字符串)GMT 时区中的帖子日期。默认值是$ post_date。
POST_CONTENT (混合)帖子内容。默认为空。
post_content_filtered (字符串)已过滤的帖子内容。默认为空。
帖子标题 (字符串)帖子标题。默认为空。
post_category (Array)发布类别值的数组。
post_excerpt(String) 帖子摘录。默认为空。
post_status (字符串)帖子状态。默认草稿。
post_type (字符串)帖子类型。默认帖子。
comment_status (字符串)帖子是否可以接受评论。接受开放或关闭。默认值是 default_comment_status 选项的值。
ping_status (字符串)帖子是否可以接受 ping。接受开放或关闭。默认值是 default_ping_status 选项的值。
post_password (字符串)访问帖子的密码。默认为空。
POST_NAME (字符串)帖子名称或 slug。默认是创建新帖子时已清理的帖子标题。
to_ping (字符串)要 ping 的空格或回车分隔的 URL 列表。默认为空。
ping 通 (字符串)已经 ping 通的空格或回车分隔的 URL 列表。默认为空。
post_modified (字符串)上次修改帖子的日期。默认为当前时间。
post_modified_gmt (字符串)在 GMT 时区中上次修改帖子的日期。默认为当前时间。
post_parent (Int)为它所属的帖子设置它,如果有的话。默认值为 0。
menu_order (Int)应显示帖子的顺序。默认值为 0。
post_mime_type (字符串)帖子的 mime 类型。默认为空。
GUID (字符串)引用帖子的全局唯一 ID。默认为空。
tax_input (数组)按分类名称键入的分类术语数组。默认为空。
meta_input (Array)由其后元键键控的后元值的数组。默认为空。

避免重复的帖子

当你执行这个功能时,你可能会得到一个重复的帖子,至少发生在我身上。 (你可以将其检入 Post WordPress 部分)

我找到了解决方案

if( !get_page_by_title( $title, 'OBJECT', 'post' ) ){
    $my_post = array('post_title' => $title,
        'post_content' => 'Content',
        'tags_input' => $tags,
        'post_category' => array(2),
        'post_status' => 'publish'
    );

    $result = wp_insert_post( $my_post );
}

说明

在保存新帖子之前,使用帖子标题作为参数验证新帖子是否已存在,如果没有帖子标题,则可以保存新帖子。

在这里查看 get_page_by_title 的文档。