2016-11-01 4 views
1

Ich versuche Posts abhängig von ihren Tags anzuzeigen.Wordpress WP_Query Begriffe mit Array-Variable

Ich habe einige Funktionen, wenn ich den Begriff Schaltflächen klicken sie eine Reihe von Daten abzuschicken formatiert mochte diesen:

array(
    [0] => 'some tag name', 
    [1] => 'another tag name' 
) 

In der Funktion unten ich, dass Formatierung etwas wie folgt aussehen:

'timbermode','bathroom' 

Ich gebe diese Daten dann in den Abschnitt "Begriffe", aber nichts wird zurückgegeben.

function ajax_filter_get_posts($taxonomy) { 

    $taxonomy = $_POST['taxonomy']; 

    $data = json_decode(stripslashes($taxonomy)); 

    $stringData = '"' . implode('","', $data) . '"'); 

    //$stringData = "array('" . implode("','", $data) . "')"; 

    // WP Query 
    $args = array(
    'post_type' => 'gallery', 
    'posts_per_page' => 8, 
    'tax_query' => array(
      array(
       'taxonomy' => 'gallery_tag', 
       'field' => 'slug', 
       'operator' => 'IN', 
       'terms' => array($stringData), 
      ), 
     ) 
    ); 

    $query = new WP_Query($args); 

    echo "{$query->request}"; 
} 

Wenn ich manuell in den Bedingungen passieren wie so:

// WP Query 
    $args = array(
    'post_type' => 'gallery', 
    'posts_per_page' => 8, 
    'tax_query' => array(
      array(
       'taxonomy' => 'gallery_tag', 
       'field' => 'slug', 
       'operator' => 'IN', 
       'terms' => array('some term', 'another term'), 
      ), 
     ) 
    ); 

Es funktioniert dann gut. Ich kann es einfach nicht herausfinden.

Jede Hilfe wird geschätzt.

Danke, Codarz

+1

'$ data' ist bereits ein Array und nach Bedarf formatiert. Setze einfach '' terms '=> array_values ​​($ data) '. – Allkin

+0

Absolute Legende. 4 ½ Stunden später funktioniert es woohoo! Fügen Sie das als Antwort hinzu, ich werde es akzeptieren. – Codarz360

Antwort

1

$data ist bereits ein Array und je nach Bedarf formatiert. Setzen Sie einfach 'terms' => array_values($data).

Verwandte Themen