WordPress插入文章或页面函数wp_insert_post详解

我们知道 wp_insert_post 函数可在数据库中插入文章(及页面),它可以进行处理变量,检查操作,填充日期/时间等缺失变量等工作。可在数据库中插入文章(及页面)。它可以进行处理变量,检查操作,填充日期/时间等缺失变量等工作。该函数以对象作为变量,返回已创建文章的编号(出错时返回 0)。一般情况下使用 wp_insert_post 函数向 wordpress 数据库插入文章或页面的情况比较少,这个 WP 函数在采集方面用得比较多。因此,如果你想做个采集软件,或者想写个 wordpress 采集接口,这个函数是必须会的,一起来学习下 wp_insert_post 函数的用法吧。

使用方法

官方描述,插入或更新一个文章或页面,传入 id 为更新,不传则创建。

  1. <?php wp_insert_post( $post, $wp_error ); ?>

参数详解

(array) (必须) 包含更新或插入内容的数组,(int|WP_Error)成功返回 post_id,失败返回 0 或 wp_error。

  • ‘ID’
    (int) 文章 ID,如果不等于 0 则更新,等于 0 则创建,默认为 0。
  • ‘post_author’
    (int) 添加文章的作者,默认为当前用户。
  • ‘post_date’
    (string) 文章添加日期,默认为当前日期
  • ‘post_date_gmt’
    (string) 在格林尼治时间区域中的时间,默认为 $post_date的值.
  • ‘post_content’
    (mixed) 文章内容,默认为空.
  • ‘post_content_filtered’
    (string) 过滤后的帖子内容。默认空.
  • ‘post_title’
    (string) 文章标题。默认空.
  • ‘post_excerpt’
    (string) 文章摘要。默认空.
  • ‘post_status’
    (string) 文章状态,默认为 ‘draft’.
  • ‘post_type’
    (string) 文章类型,默认为 ‘post’.
  • ‘comment_status’
    (string) 文章评论状态开关,默认是 ‘default_comment_status’ 配置项的值.
  • ‘ping_status’
    (string) ping 状态开关,默认是’default_ping_status’ 配置项的值.
  • ‘post_password’
    (string) 文章阅读密码,默认为空.
  • ‘post_name’
    (string) 文章的名字。默认情况下,在创建新文章时,必须使用经过净化的文章标题.
  • ‘to_ping’
    (string) 空格或回车将 url 的列表分隔成 ping,默认是空的.
  • ‘pinged’
    (string) 空格或回车分隔的 url 列表,默认是空的.
  • ‘post_modified’
    (string) 上次修改后的日期,默认是当前时间.
  • ‘post_modified_gmt’
    (string) 最后在 GMT 时区修改后的日期,默认是当前时间.
  • ‘post_parent’
    (int) 文章的父级文章 ID,默认为 0.
  • ‘menu_order’
    (int) 如果新文章为一个页面,可以设置一个页面序号,默认为 0.
  • ‘post_mime_type’
    (string) 文章的 mime 类型,默认是空的.
  • ‘guid’
    (string) 全局唯一 ID,用于引用 post,默认是空的.
  • ‘post_category’
    (array) 文章分类目录,默认值为『default_category』选项的值.
  • ‘tags_input’
    (array) 文章标签,默认为空.
  • ‘tax_input’
    (array) 文章的自定义分类法项目,默认为空.
  • ‘meta_input’
    (array) 自定义字段,默认为空.
  • page_template
    页面模板文件的名称,如,template.php,默认为空。

简单案例:

  1. //准备文章内容
  2. $my_post = array(
  3. 'post_title' => wp_strip_all_tags( $_POST['post_title'] ),
  4. 'post_content' => $_POST['post_content'],
  5. 'post_status' => 'publish',
  6. 'post_author' => 1,
  7. 'post_category' => array( 8,39 )
  8. );
  9. // 插入文章到数据库
  10. wp_insert_post( $my_post );

函数会自动过滤和检查文章信息的合法性,不需要用户自己来额外处理。

扩展详细:

今天在给某个客户开发一项功能的时候,遇到一个问题就是前台投稿页面如果插入自定义分类法呢,虽然 wp_insert_post 的传值参数里有一个 tax_input 用于插入自定义分类法的,但是好像并不好使。经过一番搜索,终于找到了解决方法:

在执行完 wp_insert_post 之后会返回一个$post_id,我们可以用下面这个函数插入自定义分类法的值:

  1. wp_set_object_terms( $post_id, 'maker', 'domain' );//domain是自定义分类法,maker是slug值

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/84494

WordPress安全防护插件
服务项目 服务内容 收费标准(元)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

电子邮件地址不会被公开。 必填项已用*标注

51建站客服微信二维码
点击这里购买