2016-11-09 4 views
0

Ich stecke schon seit einer Woche mit diesem Problem fest. Ich möchte eine Suchleiste erstellen, die eine Liste der Seiten mit den Daten in den benutzerdefinierten Feldern anzeigen wird. Zum Beispiel, wenn ich "Pre Owned" als Status der Suchleiste auswählen, sollte es die Seiten mit dem benutzerdefinierten Feld zeigen, wo die Metadaten "Pre Owned" sind. Ich habe absolut keine Ahnung, wie ich das machen soll. Ich weiß, dass es möglich ist, in benutzerdefinierten Posts zu suchen, aber ich möchte es in Seiten. http://jaroyachting.com/dev/yacht-list/ ist, wie die Liste aussieht.Seiten mit benutzerdefinierten Feldern durchsuchen

dieser Code ist, was ich versuchte, funktioniert nicht. $ searchYachts ist, wie ich meine Meta-Daten

if(isset($_POST['filter'])) { 

global $wp_query; // get the global object 
$searchYachts = get_post_meta($page->ID, 'yachtinfo', true); 
$thesearch = get_search_query(); // get the string searched 

// merge them with one or several meta_queries to meet your demand 
$args = array_merge($wp_query->query, array( 
    'meta_query' => array(
    array(
     'key' => $searchYachts["status"], 
     'value' => $_POST['status'], 
     'compare' => 'IN' 
    ) 
) 
    )); 
query_posts($args); // alter the main query to include your custom parameters 

Vielen Dank im Voraus anrufen!

Antwort

0

Hier in dieser Meta-Abfrage Sie die Meta-Werte übergeben können,

$args = array(
    'meta_query' => array(
     array(
      'key' => 'cp_annonceur', 
      'value' => 'professionnel', 
      'compare' => '=', 
     ) 
    ) 
); 
$query = new WP_Query($args); 
+0

Hey vielen Dank für deine Hilfe, aber leider funktioniert das auch nicht. Das würde bedeuten, dass meine Abfrage wäre: if (isset ($ _ POST ['filter'])) { $ searchYachts = get_post_meta ($ page-> ID, 'yacheinfo', true); $ status = $ _POST ['status']; global $ wp_query; // das globale Objekt erhalten $ args = array ( 'meta_query' => Array ( Array ( 'key' => $ searchYachts [ 'status'], 'value' => ' '$ neu', vergleichen '=>' = ', ) ) ); $ query = neu WP_Query ($ args); } – Casper

+0

Schlüssel sollte der Meta-Wert eine Zeichenfolge sein, und in Wert übergeben Sie die Post-Variable aus dem Formular kommen @Casper –

+0

Ich habe das auch versucht – Casper

0

Diese so weit ist, wie ich bekam. Aber jetzt zeigt es jede Seite ...

if(isset($_POST['filter'])) { 
$status = $_POST['status']; 
$args = array(
    'meta_query' => array(
     array(
     'key' => 'status', 
     'value' => '$status', 
     'compare' => '=', 
     ) 
    ) 
); 
$property_query = new WP_Query($args); 

?>     <div id="pages"> 
<?php $pages = get_pages(array($property_query)); ?> 
<ul style="list-style:none;"> 
    <?php foreach ($pages as $page): ?> 
     <div id="schip"> <li> 
      <div id="fotoSchip"><?php echo '<a href="' . get_page_uri($page)  .'">' . get_the_post_thumbnail($page->ID, array(365, 230)) . '</div> 
<div id="infoSchip"><h5>' . $page->post_title; ?></h5></a> 
     <?php 
     $yacht = get_post_meta($page->ID, 'yachtinfo', true); 
          foreach($yacht as $list){ 
           echo '<div id="statusSchip">' .  $list['status'] . '</div>'; 
            echo '<div id="prijsSchip">Price: ' .  $list['price'] . '</div>'; 
           } 

endforeach; 


} 
Verwandte Themen