再次编辑:啊,我没有回答这个问题。您可以选择a.*
获取具有匹配键值的帖子的所有列,而不是选择c.meta_value
.
下面的sql/$wpdb
查询将选择所有meta\\u值%s
post\\u类型为的帖子的$postType
和meta\\u键值$metaKey
. 因此,选择给定meta\\u键的所有不同值(通过“$metaKey”)。这个term_relationships
表是wordpress的帮助表,用于表中的关系连接。wp_posts
是wordpress的“posts”表,wp_postmeta
是wordpress的“Posteta”表。(注意:如果使用的是自定义表,则这些表的名称会有所不同。)
~根据@MikeNGarrett的要求,进行编辑以添加“正在做”的笔记
/* $wpdb is a global var provided by the wordpress \'engine\'
** for query\'ing wordpress database tables.
*/
global $wpdb;
$postType = \'mycustomposttype\';
$metaKey = \'mymetakey\';
$query = "
SELECT c.meta_value
FROM wp_posts a
LEFT JOIN wp_term_relationships b
ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c
ON (a.ID = c.post_id)
WHERE a.post_type = %s AND c.meta_key = %s";
$metaValues = $wpdb->prepare(query, [$postType, $metaKey]);
$metaValues = $wpdb->get_results($metaValues);
注意:我只是重用$metaValues变量。没有其他理由写入$元值的结果
prepare()
返回$metaValues变量。但是,您必须将$元值传递给
get_resluts()
.