专注 WordPress 高端企业主题的的设计与开发!

WordPress 插入页面函数 wp_insert_post

2018 年 3 月 9 日 2.12K次

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

函数描述

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

使用方法

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

参数

$postarr

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

  1. $postarr = array(
  2.     'ID'                    => '0', // (int)默认值为0,如果是0以外的值,则该 ID 的文章将被更新。
  3.     'post_author'           => get_current_user_id(), // (int)文章作者的ID,默认为当前登录的用户ID
  4.     'post_date'             => ''// 文章发布时间,默认为当前时间。
  5.     'post_date_gmt'         => ''// (字符串)GMT格式的文章发布时间。默认值是$post_date的值。
  6.     'post_content'          => ''// (字符串)文章内容,默认为空。
  7.     'post_content_filtered' => ''// (字符串)过滤后的内容,默认是空的。不要管这个,WordPress会自动处理。
  8.     'post_title'            => ''// (字符串)文章标题,默认为空.
  9.     'post_excerpt'          => ''// (字符串)文章摘要,默认为空。
  10.     'post_status'           => ''// (字符串)文章状态,默认为『draft』,即草稿。
  11.     'post_type'             => ''// (字符串)文章类型,默认为『post』.
  12.     'comment_status'        => ''// (字符串)是否可以接受评论。接受『打开』或『关闭』。默认值是『default_comment_status』选项的值。
  13.     'ping_status'           => ''// (字符串)是否可以接受ping命令。接受『打开』或『关闭』。默认值是『default_ping_status』选项的值。
  14.     'post_password'         => ''// (字符串)访问该文章的密码,默认是空的。
  15.     'post_name'             => ''// (字符串)文章的别名,当发布新的文章时会默认创建。
  16.     'to_ping'               => ''// (字符串)空格或回车将url的列表分隔成ping,默认是空的。
  17.     'pinged'                => ''// (字符串)空格或回车分隔的url列表,默认是空的。
  18.     'post_modified'         => ''// (字符串)上次修改后的日期,默认是当前时间。
  19.     'post_modified_gmt'     => ''// (字符串)最后在GMT时区修改后的日期,默认是当前时间。
  20.     'post_parent'           => ''// (int)文章的父级文章ID,默认为 0。
  21.     'menu_order'            => ''// (int)如果新文章为一个页面,可以设置一个页面序号,默认为 0。
  22.     'post_mime_type'        => ''// (字符串)文章的mime类型,默认是空的。
  23.     'guid'                  => ''// (字符串)全局唯一ID,用于引用post,默认是空的。
  24.     'post_category'         => ''// (数组)文章分类目录,默认值为『default_category』选项的值。
  25.     'tags_input'            => ''// (数组)文章标签,默认为空。
  26.     'tax_input'             => ''// (数组)文章的自定义分类法项目,默认为空。
  27.     'meta_input'            => ''// (数组)自定义字段,默认为空。
  28.     'page_template'         => ''// 页面模板文件的名称,如,template.php,默认为空。
  29. );

$wp_error

(可选)是否返回失败的WP_Error。

默认值:false

wp_insert_post函数的基本使用:

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

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