Pour récupérer un ou plusieurs post ids à partir d’une meta key et d’une meta value, utilisez cette petite fonction.
Le troisième paramètre permet de rechercher sur une value exacte ou pas.
function getPostIdByMetaKeyAndValue($key, $value, $exactValue=false) {
global $wpdb;
if($exactValue!==false)
$meta = $wpdb->get_results("SELECT * FROM `".$wpdb->postmeta."` WHERE meta_key='".$wpdb->escape($key)."' AND meta_value LIKE '%".$wpdb->escape($value)."%'");
else
$meta = $wpdb->get_results("SELECT * FROM `".$wpdb->postmeta."` WHERE meta_key='".$wpdb->escape($key)."' AND meta_value ='".$wpdb->escape($value)."'");
if (is_array($meta) && !empty($meta) && isset($meta[0])) {
foreach ($meta as $v) {
$ret[]=$v->post_id;
}
return $ret;
}
return array();
}