如何使用WordPress的wp_insert_post()函数来创建或更新文章?

2024-10-09 2,444 0

在WordPress中,wp_insert_post() 函数是一个非常有用的功能,它可以用来创建新文章或更新现有文章。以下是如何使用 wp_insert_post() 函数的步骤和示例代码:

步骤 1: 定义文章数组

首先,你需要定义一个数组,该数组包含了你想要创建或更新的文章的所有信息。这个数组通常称为 $postarr

步骤 2: 设置文章属性

$postarr 数组中,你可以设置以下属性:

  • ID:如果设置了这个属性,wp_insert_post() 将会更新这个ID对应的文章。如果不设置,将会创建一个新文章。
  • post_author:文章作者的ID。
  • post_content:文章的内容。
  • post_title:文章的标题。
  • post_status:文章的状态,例如 'publish'(发布)、'draft'(草稿)等。
  • post_type:文章的类型,默认是 'post',也可以是 'page' 或自定义文章类型。
  • post_category:文章的分类ID数组。
  • tags_input:文章的标签数组。
  • post_excerpt:文章的摘要。
  • post_parent:文章的父级ID(如果是页面的话)。
  • menu_order:文章在菜单中的排序。
  • post_date:文章的发布日期。
  • post_date_gmt:文章的GMT发布日期。

步骤 3: 调用 wp_insert_post()

使用定义好的 $postarr 数组作为参数调用 wp_insert_post() 函数。

示例代码

以下是一个创建新文章的示例:

$postarr = array(
    'post_title'    => '我的新文章标题',
    'post_content'  => '这是文章的内容。',
    'post_status'   => 'publish', // 或 'draft',根据需要设置
    'post_author'   => 1, // 假设文章作者是ID为1的用户
    'post_category' => array(8, 39), // 假设文章属于ID为8和39的分类
    'tags_input'    => array('tag1', 'tag2'), // 文章的标签
);

// 创建文章,并获取文章ID
$post_id = wp_insert_post( $postarr );

if ( is_wp_error( $post_id ) ) {
    // 如果发生错误,打印错误信息
    echo $post_id->get_error_message();
} else {
    // 如果文章创建成功,打印文章ID
    echo "文章已创建,ID是 $post_id";
}

以下是一个更新现有文章的示例:

$postarr = array(
    'ID'           => 123, // 需要更新的文章ID
    'post_title'   => '更新后的文章标题',
    'post_content' => '这是更新后的文章内容。',
);

// 更新文章,并获取文章ID
$post_id = wp_insert_post( $postarr );

if ( is_wp_error( $post_id ) ) {
    // 如果发生错误,打印错误信息
    echo $post_id->get_error_message();
} else {
    // 如果文章更新成功,打印文章ID
    echo "文章已更新,ID是 $post_id";
}

在使用 wp_insert_post() 函数时,请确保你有足够的权限来创建或更新文章,并且正确处理可能出现的错误。

相关文章

在WordPress主题开发中,如何使用wp_nav_menu()函数来自定义菜单?
如何使用the_post()函数在WordPress主题中循环显示文章?
在WordPress插件开发中,如何创建自定义数据库表?
如何使用WordPress的wp_nav_menu()函数自定义菜单输出?
在WordPress插件开发中,如何使用选项API来保存和获取插件设置?
如何使用WordPress的the_post()函数在主题中循环输出内容?