WordPress表单提交后无法更新文章特色图片,求解决方案
解决方法
你不需要用wp_update_post来设置特色图,WordPress有专门的原生函数set_post_thumbnail(),更简便直接,完全满足仅设置特色图的需求。
关键操作步骤:
- 从表单条目中提取上传图片的URL
- 将图片URL转换为对应的媒体库附件ID(
set_post_thumbnail需要附件ID而非URL) - 调用函数为目标文章绑定特色图
修改后的代码如下:
add_action( 'gform_after_submission_2', 'custom_action_after_apc', 10, 2 ); function custom_action_after_apc( $entry, $form ) { // 获取Advanced Post Creation插件创建的文章ID数组 $created_posts = gform_get_meta( $entry['id'], 'gravityformsadvancedpostcreation_post_id' ); // 替换为你表单中图片上传字段的实际ID,比如字段ID是5就写$entry[5] $image_url = $entry['你的图片字段ID']; // 通过图片URL获取对应媒体库附件的ID $attachment_id = attachment_url_to_postid( $image_url ); foreach ( $created_posts as $post ) { $post_id = $post['post_id']; // 验证附件ID有效后,设置文章特色图 if ( $attachment_id ) { set_post_thumbnail( $post_id, $attachment_id ); } } }
补充说明:
- 务必把
'你的图片字段ID'替换为你Gravity Forms表单里图片上传字段的真实ID(可在表单编辑页查看每个字段的ID标识) attachment_url_to_postid()是WordPress内置函数,自动匹配URL对应的媒体库附件并返回IDset_post_thumbnail()仅负责设置特色图,不会修改文章的其他内容,完全符合你的需求- 增加了附件ID有效性判断,避免无效URL导致的错误执行
内容的提问来源于stack exchange,提问作者kasperboling
相关产品推荐
相关产品推荐

