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
相关产品推荐
相关产品推荐

