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

简化重复值判断的if分支 优化WordPress术语处理函数

简化WordPress术语检查与创建的分支逻辑

我懂你现在的困扰——嵌套的if-else分支处理多个术语的存在性检查,代码越写越臃肿,维护起来特别头疼。咱们可以通过封装复用逻辑和扁平化流程来彻底理顺这段代码。

第一步:封装术语检查/创建的通用函数

先把「检查术语是否存在,不存在则创建」的重复逻辑抽成独立函数,避免冗余代码:

/**
 * 获取或创建指定分类下的术语
 * @param string $term_name 术语名称
 * @param string $taxonomy 分类法slug
 * @return WP_Term|false 返回术语对象,失败则返回false
 */
function get_or_create_term(string $term_name, string $taxonomy) {
    // 先检查术语是否存在
    $term = get_term_by('name', $term_name, $taxonomy);
    
    // 不存在则尝试创建
    if (!$term) {
        $created_result = wp_insert_term($term_name, $taxonomy);
        // 创建成功则返回新术语对象,失败返回false
        $term = is_array($created_result) ? get_term($created_result['term_id'], $taxonomy) : false;
    }
    
    return $term;
}

第二步:简化主逻辑流程

有了通用函数后,主代码就能彻底摆脱复杂的分支判断,逻辑一目了然:

// 获取或创建两个目标术语
$term1_obj = get_or_create_term($term1, $taxonomy1);
$term2_obj = get_or_create_term($term2, $taxonomy2);

// 确保两个术语都成功获取/创建后,调用文章创建函数
if ($term1_obj && $term2_obj) {
    // 这里替换成你的文章创建函数,比如:
    // create_target_post($term1_obj, $term2_obj);
} else {
    // 可选:处理术语创建失败的场景,比如记录错误日志
    error_log("术语创建失败:term1=" . $term1 . " | term2=" . $term2);
}

优化后的优势

  • 代码复用:后续需要处理更多术语时,直接调用get_or_create_term即可,不用重复写判断逻辑
  • 逻辑清晰:主流程扁平化,再也不用纠结嵌套if-else的分支走向
  • 易维护:术语检查/创建的规则集中在一个函数里,后续修改(比如添加术语描述、自定义slug)只需要改动这一处

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:57:58