利用wp_insert_post函数插入数据

2019-03-15

在主题开发的过程中可能需要在前台提交数据到后台,比如前台投稿,项目提交等,这个使用利用wp_insert_post函数可以轻松搞定,下面我们来了解一下详细用法:

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

使用方法

<?php wp_insert_post( array $postarr, bool $wp_error = false ); ?>

$postarr 参数说明

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

$wp_error

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

默认值:false

基本用法

// Create post object
$my_post = array(
  'post_title'    => wp_strip_all_tags( $_POST['post_title'] ),
  'post_content'  => $_POST['post_content'],
  'post_status'   => 'publish',
  'post_author'   => 1,
  'post_category' => array( 8,39 )
);
 
// Insert the post into the database
wp_insert_post( $my_post );

进阶插入到自定义分类法的文章和选择自定义分类法类别

$post_arr = array(
    'post_title'   => 'Test post',
    'post_content' => 'Test post content',
    'post_status'  => 'publish',
    'post_author'  => get_current_user_id(),
    'tax_input'    => array(
        'diy'     => '1',
    ),
    'meta_input'   => array(
        'test_meta_key' => 'value of test_meta_key',
    ),
);

diy是自定义分类法的方法,1是对应的ID

WordPress开发的相关文章

polylang 注册字符串翻译
关于插件的安装就不多说了,重点说下小型站点在多语言开发过程中遇到的一个关键性问题,就是对于主题页面中的装饰性文字,向导性文字
WordPress 后台用户根据注册时间排序
在当前主题的 functions.php 中添加以下 php 代码即可: //WordPress 后台用户根据注册时间排序
wordpress多语言插件polylang常用代码
获得当前语言的代码: <?php pll_current_language(); ?> 如何调用指定语言的文
免插件禁用古滕堡编辑器(Gutenberg)
在functions.php底部新增以下代码 //禁止 WordPress5.0 使用 Gutenberg 块编辑器 a
wordpress分页函数:the_posts_pagination
wordpress免插件分页,wordpress自带函数:the_posts_pagination <?php th
利用wp_insert_post函数插入数据
在主题开发的过程中可能需要在前台提交数据到后台,比如前台投稿,项目提交等,这个使用利用wp_insert_post函数可以轻
调用wordpress编辑器
<?php wp_editor( $content, $editor_id, $settings = array()
利用update_user_meta()函数增加修改wordpress用户个人信息
在开发过程中我们需要对用户信息额外的字段进行更新和修改,或者增加,利用一些wordpress内置的函数就可以轻松完成: u
wordpress用自定义分类法获取自定义文章类型分类列表
<?php $args=array( 'taxonomy' => 'development_cat',
dynamic主题contactform7表单设置参考
开发项目表单设置参考: <div class="row"> <div class="col-xs-12