2014-05-12 5 views
1

J'ai une question simple mais je ne trouve pas la réponse de la recherche sur le web. Avec WP_Query, comment est traitée la valeur "clé" d'une "méta_query"? Puis-je utiliser un caractère générique?Wordpress WP_Query générique dans "clé"

Par exemple:

$args = array(
    'post-type' => 'post', 
    'meta_query' => array(
     array(
      'key' => 'dates_%_participants', 
      'compare' => 'LIKE', 
      'value' => '"'.$user->ID.'"', 
     ) 
    ) 
); 

$query = new WP_Query($args); 

Notez que le "%" dans la 'clé'

+0

Non, vous ne pouvez pas l'utiliser dans les clés. Pourquoi voudriez-vous faire cela? Quel est le scénario ici? Quelles clés voulez-vous obtenir et ne pas vouloir obtenir? Ne pouvez-vous pas les diviser en plusieurs clés? –

Répondre

4

Ajouter un filtre à la requête pour remplacer

meta_key = « dates_%

avec

meta_key LIKE 'dates_%

En functions.php:

function posts_where_dates($where) { 
    $where = str_replace("meta_key = 'dates_%", "meta_key LIKE 'dates_%", $where); 
    return $where; 
} 

add_filter('posts_where' , 'posts_where_dates'); 

Votre requête reste le même que vous l'aviez. à savoir

$args = array(
    'post-type' => 'post', 
    'meta_query' => array(
     array(
      'key' => 'dates_%_participants', 
      'compare' => '=', 
      'value' => '"'.$user->ID.'"', 
     ) 
    ) 
); 

bien caché mais documenté ici: https://codex.wordpress.org/Plugin_API/Filter_Reference/posts_where

Questions connexes