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

如何通过SQL查询WordPress自定义文章类型stock的ACF自定义字段值?

WordPress自定义文章类型ACF字段SQL查询方案

错误原因

你原有SQL的子查询未与外层文章表做ID关联,数据库无法匹配当前文章对应的自定义字段值,因此返回NULL。

正确查询语句

推荐使用LEFT JOIN的方式实现多字段查询,可读性和兼容性更高:

SELECT 
    p.post_title,
    pm1.meta_value AS prix,
    pm2.meta_value AS ville,
    pm3.meta_value AS 'nombre de chambres'
FROM mod803_posts p
-- 关联价格字段
LEFT JOIN mod803_postmeta pm1 
    ON p.ID = pm1.post_id 
    AND pm1.meta_key = 'prix'
-- 关联城市字段
LEFT JOIN mod803_postmeta pm2 
    ON p.ID = pm2.post_id 
    AND pm2.meta_key = 'ville'
-- 关联房间数字段
LEFT JOIN mod803_postmeta pm3 
    ON p.ID = pm3.post_id 
    AND pm3.meta_key = 'nombre de chambres'
WHERE 
    p.post_type = 'stock' 
    AND p.post_status = 'publish'
ORDER BY p.post_date DESC;

补充说明

如果需要新增其他自定义字段,按照上述LEFT JOIN的格式新增关联即可,关联条件必须同时指定post_id(和外层文章表ID匹配)和meta_key(对应ACF字段名)。
如果你更习惯使用子查询写法,只需要在子查询中补充ID关联即可:

SELECT 
    post_title,
    (SELECT meta_value FROM mod803_postmeta WHERE post_id = p.ID AND meta_key = 'prix') AS prix,
    (SELECT meta_value FROM mod803_postmeta WHERE post_id = p.ID AND meta_key = 'ville') AS ville,
    (SELECT meta_value FROM mod803_postmeta WHERE post_id = p.ID AND meta_key = 'nombre de chambres') AS 'nombre de chambres'
FROM mod803_posts p
WHERE p.post_type='stock' AND p.post_status='publish'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:09:00