Problema de consulta do WP para vários valores

Eu tenho um campo personalizado com a colour da chave e o valor pode ser red ou blue para postagens individuais.

Conheço o código para retornar posts que são vermelhos ou azuis, ou seja, ?colour=red , mas não conheço o código para retornar posts que são vermelhos ou azuis, ou seja, ?colour=red&colour=blue .

Recebi ajuda com o código de um usuário, mas ainda não funcionava … qualquer ajuda foi recebida com gratidão … obrigado

 
Red
Blue
'OR'); foreach ($colours as $colour) { $meta_query[] = array( 'key' => 'colour', 'value' => $colour, 'compare' => 'like', ); } $query = new WP_Query($args); while($query -> have_posts()) : $query -> the_post(); ?>

Solutions Collecting From Web of "Problema de consulta do WP para vários valores"

Você usa $args mas não é definido.

Na sua forma, você precisa adicionar suporte duplo para fazer $ colors uma matriz.

  Red
Blue

$ value) {$ colors [] = $ value; }

 $meta_query = array('relation' => 'OR'); foreach ($colours as $colour) { $meta_query[] = array( 'key' => 'colour', 'value' => $colour, 'compare' => 'like', ); } $args = array('meta_query'=>$meta_query); $query = new WP_Query($args); 

Se você quiser passar em uma matriz em seu parâmetro $_GET (o que eu acho que é o que você está tentando realizar), você não pode fazê-lo assim:

 example.com/?colour=red&colour=blue 

Isso resultará em $_GET['colour'] sendo blue , já que é o último parâmetro.

Em vez disso, crie sua URL como essa:

 example.com/?colour[]=red&colour[]=blue 

o que deve resultar em $_GET['colour'] olhando mais como isto:

 Array ( [0] => red [1] => blue ) 

Veja estas perguntas e respostas no estouro de pilha para mais informações.

Editado para adicionar

Dito isto, você deve ter certeza de que você tem uma array em primeiro lugar. Você poderia fazer algo como isto:

 if($_GET['colour'] && !empty ($_GET['colour'])) { $colours = (array) $_GET['colour']; } 

Além disso, você deve realmente validar, desinfetar e escaping dos dados do usuário . Nunca confie cegamente nos dados do usuário.