it-swarm.com.de

Suchen von Posts mit übereinstimmenden Array-Elementen in einem Metafeld mithilfe von WP_Query

Ich habe ein Metafeld, das eine Reihe von Optionen enthält und die Ergebnisse in ein Array in einem einzelnen Metafeld schreibt:

array([0]=>'First',
      [1]=>'Second',
      [2]=>'Third',
     );

Ich finde Posts, die eines der Array-Elemente enthalten, und zeige sie mit WP_Query an.

$search = new WP_Query('meta_key=mykey&meta_value=second');

Aber das scheint nicht zu funktionieren. Irgendeine Idee, wie dies erreicht werden kann?


Ich habe meine Methode folgendermaßen bearbeitet: this question:

$arg['meta_key'] == $key;
$args['meta_value'] = "%|".$value."|%";
$custom_query = new WP_Query($args);

Aber keine Pfeile.

1
Mild Fuzz

Ich glaube, Sie müssen Meta Compare LIKE verwenden. Wenn Sie eine reguläre Meta-Abfrage durchführen, lautet die resultierende SQL "meta_value = your_value". Dadurch wird nie etwas gefunden, da versucht wird, den gesamten Inhalt des Feldes abzugleichen.

2
Milo

Ich bin mir ziemlich sicher, dass ich ein Array zurückgeben oder nach Werten (oder Schlüsseln) suchen werde, die Sie für die Verwendung von meta_query benötigen.

Also so etwas wie:

$search = array(
           'post_type' => 'post',
           'meta_query' => array(
                                array(
                                   'key'     => 'mykey',
                                   'value'   => 'second',
                                     )
                                )
                );

 $query = new WP_Query($search);
1
Wyck