如何修改ACF字段合并代码,仅非指定分类产品包含指定字段
扩展WordPress ACF字段合并逻辑:排除指定分类时不包含指定字段
之前的代码会将field1和field2合并后存入field3,现在需要调整逻辑:只有当当前产品不属于“Oils”分类时,才在合并结果里带上field2的内容
修改后的完整代码如下:
// 文章保存后执行该函数 function my_acf_save_post( $post_id ) { // 获取field1的新值 $value1 = get_field( 'field1', $post_id ); // 获取field2的新值 $value2 = get_field( 'field2', $post_id ); // 初始化合并后的内容为field1的值 $merge = $value1; // 检查当前产品是否不属于"Oils"分类 if ( !has_term( 'Oils', 'product_cat', $post_id ) ) { // 不属于的话,拼接field2的内容 $merge .= ' (' . $value2 . ')'; } // 将合并后的值更新到field3 update_field( 'field3', $merge, $post_id ); } add_action_action('acf/save_post', 'my_acf_save_post', 20);
关键逻辑说明
has_term('Oils', 'product_cat', $post_id):用于检测当前产品(对应$post_id)是否属于WordPress产品分类(product_cat)下的“Oils”分类- 前缀
!表示取反,即只有当产品不属于“Oils”分类时,才会把field2的内容拼接到合并结果里 - 如果产品属于“Oils”分类,合并结果就只保留
field1的内容
内容的提问来源于stack exchange,提问作者MaltaCode
相关产品推荐
相关产品推荐

