web-dev-qa-db-fra.com

WP_Query avec case à cocher meta_query

J'ai aussi posté ceci sur StackOverflow, je ne sais pas si c'est autorisé - sinon, faites-le-moi savoir et je vais en supprimer un (je ne veux pas avoir l'air d'être du spam). En tous cas....

J'ai un type de publication personnalisé et j'ai utilisé le plug-in Verve Meta Boxes pour créer des méta-valeurs personnalisées pour le type de publication.

La méta-boîte est appelée "Sujets" et contient une liste de sujets à cocher pour l'attribution de valeurs. Par exemple, j'ai coché Math, English and Science.

Maintenant, je souhaite effectuer une requête WP_Query qui prend un tableau de sujets sélectionnés par l'utilisateur en tant que tableau, compare ces sujets à ceux sélectionnés pour le type de message personnalisé et renvoie des messages si l'un d'eux correspond.

Voici le code jusqu'à présent:

$subjects_array = explode("_", $_GET["subjects"]);

$args = array(
            'post_status' => 'publish',
            'post_type' => 'any',
            'meta_query' => array(

         // Not sure what type of meta query to do   

            )
        );


$query = new WP_Query($args);

Pour résumer, il me suffit de savoir s’il existe un moyen d’exécuter une méta_query permettant de comparer un tableau avec le format dans lequel se trouvent les données de la méta-boîte?

Si ce n'est pas possible, j'ai juste besoin de savoir, alors je vais regarder une manière différente de le faire, mais je pense qu'il y a peut-être une capacité de méta-requête que je ne connais pas.

Toute aide serait très appréciée.

5
Adam Moss

Jetez un coup d’œil au - codex pour mieux comprendre les requêtes de champs personnalisés, mais cela devrait ressembler à ceci:

$subjects_array = explode("_", $_GET["subjects"]);

$args = array(
    'post_status' => 'publish',
    'post_type' => 'any',
    'meta_query' => array(
         array(
            'key' => 'field_name',
            'value' => $subjects_array,
            'compare' => 'IN'
        ) 
    )
);


$query = new WP_Query($args);
4
Bainternet