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

PHP中get_field()的If-Else逻辑失效,ACF特色字段不生效

问题解决思路

1. 修复IF分支不执行的问题

你的IF分支不执行,核心是get_field('featured')返回值与'yes'的匹配逻辑出了问题,常见原因及修复方案:

  • 去除前后空格:输入字段时可能误加空格,导致返回值为' yes'或'yes ',和'yes'严格相等不成立,修改代码:
    $featured = trim(get_field('featured')); // 清除返回值前后空格
    if ($featured == 'yes'):
    
  • 统一大小写:若输入的是'Yes'或'YES',小写'yes'的比较会失败,改成不区分大小写的判断:
    $featured = strtolower(trim(get_field('featured')));
    if ($featured == 'yes'):
    
  • 验证返回值:临时添加代码查看实际返回内容,快速定位问题:
    $featured = get_field('featured');
    var_dump($featured); // 查看具体返回值,测试完成后删除
    

2. 实现特色资源优先显示

当前代码仅区分样式,未改变资源的显示顺序。要让特色资源排在最前面,需修改WordPress查询逻辑:

方法1:直接修改自定义查询参数

如果是自定义循环,在WP_Query中添加排序规则:

$args = array(
    'post_type' => '你的资源文章类型', // 替换为实际的资源类型
    'meta_key' => 'featured',
    'orderby' => 'meta_value',
    'order' => 'DESC', // 让'yes'排在非特色资源前
    // 其他查询参数...
);
$query = new WP_Query($args);
while ($query->have_posts()) : $query->the_post();
// 你的循环代码
wp_reset_postdata();

方法2:用钩子全局修改查询

在主题functions.php中添加钩子,针对目标页面调整查询:

add_action('pre_get_posts', 'prioritize_featured_resources');
function prioritize_featured_resources($query) {
    if (is_front_page() && $query->is_main_query()) { // 替换为你的目标页面条件
        $query->set('meta_key', 'featured');
        $query->set('orderby', 'meta_value');
        $query->set('order', 'DESC');
    }
}

3. 额外优化:修复分类输出逻辑

你代码中$terms = the_terms(...)的写法错误,the_terms()是直接输出内容的函数,不会返回值给变量,正确写法是用get_the_terms()获取后循环输出:

$taxonomies = array('building_type', 'lease_phase', 'topic', 'building_stakeholder');
$terms = get_the_terms(get_the_ID(), $taxonomies);
if ($terms && !is_wp_error($terms)) {
    $term_links = array();
    foreach ($terms as $term) {
        $term_links[] = '<a href="' . get_term_link($term) . '">' . $term->name . '</a>';
    }
    echo implode(', ', $term_links);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:31:16