为WordPress自定义文章类型分类添加图片的问题及解决
WordPress分类自定义图片功能的问题与解决过程
初始问题
为WordPress主题添加分类图片功能后,后台及站点前端已能正常显示图片,但functions.php文件出现如下警告:
Warning: Undefined array key "category_custom_image_url" in C:\xampp\htdocs\wordpress\wp-content\themes\customjob\functions.php on line 457
初始实现代码如下:
add_action( 'edit_term', 'edit_term_callback' ); function edit_term_callback($term_id) { $image = ''; $image = get_term_meta( $term_id, 'term_image' ); if ( $image ) update_term_meta( $term_id, 'term_image', esc_url( $_POST['category_custom_image_url']) ) else add_term_meta( $term_id, 'term_image', esc_url( $_POST['category_custom_image_url']) ); }
临时修复后的新问题
通过在if ( $image )前添加$_POST[] = 'category_custom_image_url';解决了未定义数组键的警告,但出现新问题:在分类编辑页面未对图片做任何操作时,点击更新按钮会删除当前已设置的图片。
最终解决方案
添加判断逻辑,仅当提交的图片URL存在且非空时才更新元数据,否则保留原有图片设置,解决后的代码如下:
add_action( 'edit_term', 'edit_term_callback' ); function edit_term_callback($term_id) { $_POST[] = 'category_custom_image_url'; if ( isset($_POST['category_custom_image_url']) && '' !== $_POST['category_custom_image_url'] ) update_term_meta( $term_id, 'term_image', esc_url( $_POST['category_custom_image_url']) ); else add_term_meta( $term_id, 'term_image', esc_url( $_POST['category_custom_image_url']) ); }
@womd 非常感谢您的关注,祝您生活顺遂。
内容的提问来源于stack exchange,提问作者wws34
相关产品推荐
相关产品推荐

