萨龙网络已经开发了很多 WordPress 主题，LensNews 主题要创建的页面较多，所以导致很多用户来咨询如何设置用户中心，在最新上线的 MNews 主题中就使用了 wp\_insert\_post 函数来自动创建主题要使用到的页面，这样大大减少了主题配置工作，也给萨龙龙节约了不少时间。

函数描述

该函数可在数据库中插入文章及页面。如果`$postarr`参数有“ID”设置为一个值，那么文章将被更新。您可以通过设置“post\_date”和“post\_date\_gmt”值来手动设置发布日期也可以通过设置“comment\_status”值来关闭评论或打开注释。

使用方法

1. &lt;?php wp\_insert\_post( $postarr, $wp\_error ); ?&gt;

参数

$postarr

一个更新或插入文章的数组元素。

1. $postarr = array(
2. ‘ID’ =&gt; ‘0’, // (int)默认值为0，如果是0以外的值，则该 ID 的文章将被更新。
3. ‘post\_author’ =&gt; get\_current\_user\_id(), // (int)文章作者的ID，默认为当前登录的用户ID
4. ‘post\_date’ =&gt; ”, // 文章发布时间，默认为当前时间。
5. ‘post\_date\_gmt’ =&gt; ”, // (字符串)GMT格式的文章发布时间。默认值是$post\_date的值。
6. ‘post\_content’ =&gt; ”, // (字符串)文章内容，默认为空。
7. ‘post\_content\_filtered’ =&gt; ”, // (字符串)过滤后的内容，默认是空的。不要管这个，WordPress会自动处理。
8. ‘post\_title’ =&gt; ”, // (字符串)文章标题，默认为空.
9. ‘post\_excerpt’ =&gt; ”, // (字符串)文章摘要，默认为空。
10. ‘post\_status’ =&gt; ”, // (字符串)文章状态，默认为『draft』，即草稿。
11. ‘post\_type’ =&gt; ”, // (字符串)文章类型，默认为『post』.
12. ‘comment\_status’ =&gt; ”, // (字符串)是否可以接受评论。接受『打开』或『关闭』。默认值是『default\_comment\_status』选项的值。
13. ‘ping\_status’ =&gt; ”, // (字符串)是否可以接受ping命令。接受『打开』或『关闭』。默认值是『default\_ping\_status』选项的值。
14. ‘post\_password’ =&gt; ”, // (字符串)访问该文章的密码，默认是空的。
15. ‘post\_name’ =&gt; ”, // (字符串)文章的别名，当发布新的文章时会默认创建。
16. ‘to\_ping’ =&gt; ”, // (字符串)空格或回车将url的列表分隔成ping，默认是空的。
17. ‘pinged’ =&gt; ”, // (字符串)空格或回车分隔的url列表，默认是空的。
18. ‘post\_modified’ =&gt; ”, // (字符串)上次修改后的日期，默认是当前时间。
19. ‘post\_modified\_gmt’ =&gt; ”, // (字符串)最后在GMT时区修改后的日期，默认是当前时间。
20. ‘post\_parent’ =&gt; ”, // (int)文章的父级文章ID，默认为 0。
21. ‘menu\_order’ =&gt; ”, // (int)如果新文章为一个页面，可以设置一个页面序号，默认为 0。
22. ‘post\_mime\_type’ =&gt; ”, // (字符串)文章的mime类型，默认是空的。
23. ‘guid’ =&gt; ”, // (字符串)全局唯一ID，用于引用post，默认是空的。
24. ‘post\_category’ =&gt; ”, // (数组)文章分类目录，默认值为『default\_category』选项的值。
25. ‘tags\_input’ =&gt; ”, // (数组)文章标签，默认为空。
26. ‘tax\_input’ =&gt; ”, // (数组)文章的自定义分类法项目，默认为空。
27. ‘meta\_input’ =&gt; ”, // (数组)自定义字段，默认为空。
28. ‘page\_template’ =&gt; ”, // 页面模板文件的名称，如，template.php，默认为空。
29. );

$wp\_error

(可选)是否返回失败的WP\_Error。

默认值：false

`wp_insert_post`函数的基本使用：

1. // 文章投稿
2. $my\_post = array(
3. ‘post\_title’ =&gt; wp\_strip\_all\_tags( $\_POST\[‘post\_title’\] ),
4. ‘post\_content’ =&gt; $\_POST\[‘post\_content’\],
5. ‘post\_status’ =&gt; ‘publish’,
6. ‘post\_author’ =&gt; 1,
7. ‘post\_category’ =&gt; array( 8,39 )
8. );
9. 
10. // 插入文章到数据库
11. wp\_insert\_post( $my\_post );

函数一般用在启用主题时创建一些默认页面，以及投稿中。