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

WordPress:如何从文章ID数组中获取对应wpsl_city字段的自定义字段值数组

解决方案

没问题,你只需要在现有代码基础上,循环每个店铺ID并提取对应的wpsl_city自定义字段值,就能得到目标的城市数组了。这里给你修改好的完整代码:

// 测试函数
add_action('wp_head', 'testa');
function testa() {
    $all_post_ids = get_posts(array(
        'fields' => 'ids',
        'posts_per_page' => -1,
        'post_type' => 'wpsl_stores',
        'post_status' => 'publish'
    ));
    
    // 初始化城市数组,用来存放最终结果
    $city_array = array();
    
    // 遍历每个店铺ID,提取对应的城市字段值
    foreach ($all_post_ids as $post_id) {
        $city = get_post_meta($post_id, 'wpsl_city', true);
        // 过滤掉空值,避免数组里出现无效的空元素
        if (!empty($city)) {
            $city_array[] = $city;
        }
    }
    
    echo json_encode($city_array);
}

代码说明

  • 保留了你原来获取所有已发布wpsl_stores文章ID的逻辑,这部分是正确的。
  • 新增$city_array用于存储最终的城市值集合。
  • 通过foreach循环逐个处理每个店铺ID,调用get_post_meta()提取对应的城市字段值。
  • 添加了!empty($city)的判断,这样可以自动过滤掉那些没有填写城市信息的店铺,让返回的数组更整洁,没有无效的空内容。

如果你不需要过滤空值,直接去掉if (!empty($city))判断即可,不过通常建议保留这个处理,避免返回不必要的空元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 22:09:07