You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用wp_update_post更新自定义文章类型及自定义字段?

关于使用wp_update_post处理自定义文章类型的解答

没问题,我来帮你理清这个问题:

1. wp_update_post完全适用于自定义文章类型

你不需要在参数里指定post_type是因为每个文章ID已经唯一关联了对应的文章类型,wp_update_post会通过传入的ID自动识别它属于哪个类型(包括你的crb_expense)。只要你传入正确的文章ID,它就能正常更新标题、内容这些核心字段,完全不用担心自定义类型的兼容性问题。

举个简单的使用示例:

// 准备要更新的核心字段数据
$post_update_data = array(
    'ID'           => 123, // 这里替换成你的crb_expense文章ID
    'post_title'   => '更新后的费用记录标题',
    'post_content' => '这是更新后的费用详细说明内容'
);

// 执行更新操作
wp_update_post( $post_update_data );

2. wp_update_post无法直接更新自定义字段

这个函数仅负责处理文章的核心内置字段(标题、内容、发布状态等),自定义字段需要用专门的update_post_meta函数来处理;如果要更新关联的分类法,则需要使用wp_set_object_terms函数。

下面给你一套完整的更新流程示例,覆盖标题、内容、自定义字段和关联分类法:

// 步骤1:更新标题、内容等核心字段
$post_data = array(
    'ID'           => 123,
    'post_title'   => '2024年Q2办公耗材费用',
    'post_content' => '详细记录了Q2采购的打印机墨盒、复印纸等耗材支出明细'
);
wp_update_post( $post_data );

// 步骤2:更新自定义字段(比如费用金额、报销人)
update_post_meta( 123, 'expense_total', '1850.50' );
update_post_meta( 123, 'applicant_name', '李四' );

// 步骤3:更新关联的分类法(假设你的分类法slug是expense_type)
// 这里的数组是分类术语的ID,替换成你实际需要关联的术语ID
wp_set_object_terms( 123, array( 3, 6 ), 'expense_type' );

小提醒:如果你的自定义字段是多值类型,可通过update_post_meta的第四个参数指定旧值来精准更新,或者先使用delete_post_meta清空旧值再添加新值。

内容的提问来源于stack exchange,提问作者Svetlozar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:10:57