这是我花了太多时间研究的问题之一,可能有一个我错过的非常简单的解决方案。任何帮助都将不胜感激。
我试图用自定义数据中的名称填充选择框(meta_key
“”pyd_pub_author
)但是,我不能直接调用数据,因为它还需要确保"pyd_pub_type" = "Newsletter"
这个meta_value
对于meta_key "pyd_pub_type"
需要是"Newsletter"
作者的名字必须来自meta\\u key“pyd_pub_author
“棘手的是,还有很多其他的”pyd_pub_authors
“与其他关联的”pyd_pub_type
“,我也需要过滤掉它们。
因此,我需要过滤掉meta\\u值“Newsletter
“和所有”pyd_pub_author
“与之关联的。
我所做的是:
$metakey = $prefix . \'pub_author\';
$authors_query = $wpdb->get_col(
$wpdb->prepare(
"SELECT DISTINCT meta_value, post_id
FROM $wpdb->postmeta
WHERE meta_key = %s
HAVING post_id = ANY (
SELECT DISTINCT post_id
FROM $wpdb->postmeta
WHERE meta_value = \'Newsletter\'
)
", $metakey
)
);
这将返回与列表匹配的每个post\\u id的作者名称,即使它们是重复的。“DISTINCT”没有过滤名称,因为它正在检查post\\u id。因此,我要做的就是运行一个array\\u unique()来去除重复项。这是可行的,但必须有一种更简单、更便宜的方法来做到这一点。
头->桌子,头->桌子,头->桌子。。。