如何用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
相关产品推荐
相关产品推荐

