我们知道 wp_insert_post 函数可在数据库中插入文章(及页面),它可以进行处理变量,检查操作,填充日期/时间等缺失变量等工作。可在数据库中插入文章(及页面)。它可以进行处理变量,检查操作,填充日期/时间等缺失变量! \ @ \等工作。该函数以对象作为变量,返回已创建文章的编号(出错时返回 0)。一般情况下使用 wp_insert_post 函数向 WordPress 数据库插入文章或页面的情况比较少,这个 WP 函数在采集方面用得比较多。因此,如果你想做个采集软件,或者想写个 wordpress 采集接口,这个J / x H ? , # ) |函数是必须Q d E M ? K会的,一起来学习下 wp_insert_poD V j F 8 K G !st 函数的用法吧。
使用方法
官方描述,插入或更新一个文章或页面,传入 id 为更新,不传则创建。
- &T 0 * g u O Olt;?php wp_insert_post(Q \ V ( $post, $wp_error ); ?>
参数详解
(array) (必须) 包含更新或插入内容的数组,(int|WP_Error)成功返回 post_id,失败返9 u ! H : B v 6 B回 0 或 wp_errorb % q p V $。
-
‘ID’
(int)文章 ID,如果不等于 0 则更新,等于 0 则创建,默认为 0。 -
‘post2 Q (_a[ v l N _ nuthor’
(int)添加文章的作者,默认为当前用户。 -
‘post_date’
(string)p h * S N B L文章添加日期,默认为当前日期 -
‘post_date_gmt’
(string)在格林尼治时间区域中的时间,默认为$post_date
的值. -
‘post_content’
(mixed)文章内容,默认为空. -
‘post_content_filtered’
(string) 过滤后的帖子内容。默认空. -
‘post_title’
(string) 文章标题。默认空. -
‘post_excerpt’
(string) 文章摘要。默认空. -
‘post_Q j 8status’
(string)文章状态,默认为 ‘draft’.{ n t | s ? y ~ -
‘post_typeC . 1 e K w’
(string)文章类型,默认为 ‘post’. -
‘comment_status’
(string)文章评k ; O论状态开关,默认是 ‘dR ? y (efault_comment_status’ 配置项的值. -
‘ping_status’
(string)ping 状态开关,默认是’default_pingO 4 . ,_status’ 配置项z l ~ b @ S的值. -
‘post_password’
(string)文章阅读密码,默认为空. -
‘post_name’
(string)文章的名字。默认情况下,在创建新文章时,必须使用经` W W 8 s , *过净化的文章标题. -
‘to_ping’
(string) 空格或回车将 url 的列表分隔成 ping,默认是空的.( V ) w -
‘pinged’
(string) 空格或回车分隔的 url 列表,默认是空的. -
‘post_mi v Fodified’
(string) 上次修改后的日期,默认是当前时间. -
‘post_modS | M * x q - M yified_gmt’
(string) 最后在 GMT 时区修改后的日期,默认是当前时间. -
‘post_parent’
(int) 文章的父级文章 ID,默认为$ 6 C x ; u p Y0. -
‘menu_order’
(int) 如果新文章为一个页面,可以设置一个页面序号,默认为0. -
‘post_mime_) 7 \ H & q $type’
(str! [ A 4 [ing) 文章的 mime 类型,默认是空的. -
‘guid’
(string) 全局唯一 ID,用于引用 post,默认是空的. -
‘post_category’
(array) 文章分类目录,默认值为『default_category』选项的值. -
‘tags_input! Z / : 8 W’
(array) 文章标签,默认为空. -
‘tax_input’
(array) 文章的自定义分类法项目,默认为空. -
‘meta_inpur \ o . i Z ,t’
(array) 自定义字段,默认为空. - page_tei . ? Pmplate
页面模板文件的名B c B ! j称,如,template.phJ ^ C ~p,默x p * R 6 C * O )认为空。
简单案例:
- //准备文章内容
- $my_post = array(
- 'post_title' => wp_strip_all_tags(\ & D . z z $_POz * 4 4 wST['post_titl# * g 2 Q me'] - ( d 2041;,
- 'post_content' => $_POST['post_content'&u 3 x ~ e#093k r z O & r;,
- 'post_status' => 'publish',
- 'post_author' =&4 ( T l t 6 #gt; 1,
- 'post_category' => array( 8,39 )v | K l;
- );
- // 插入文章到数据库
- wp_insert_post_ N b d040; $my_post );
函数会自动过滤和检查文章h @ \信息的合法性,不需要用户自己来额外处理。
扩展详细:
今天在给某个客户开发一项功) B / } 5能的时候,遇到一个问题就是前台投稿页面如果插入? ~ : 0 {自定义分类法呢,虽然 wp_insert_post 的传值参数里有一个 tax_input 用于插入自定义分类法的,但是好像并不好使。经过一番搜索,终于找到了解决方法:
在执行完 wp_insert_post 之后会返回一个$post_id,我们可以用下面这个函数插入自定义分类法的值:
- wp_set_object_terms( $post_id, 'maker', 'domain' );//domain是自定义分类法,maker是slug值