2017-04-22 1 views
0

wie Meta-Werte zu verknüpfen, um eine Suche nach Beiträgen mit der aktuellen Meta zu machen?Holen Sie sich eine Liste von Meta-Werten und suchen Sie nach Beiträgen Wordpress

Der obige Code, zeigen in einem Drop-Down alle meta_value von Stadt meta_key und cpt Post Typ

<?php if (have_posts()) : ?> 
//some code for title 
<?php 
$args = array(
    'post_type' => 'cpt', 
    'post_status' => 'publish', 
    'posts_per_page' => -1, 
    'meta_key' => 'city', 
    ); 
$dbResult = new WP_Query($args); 

    echo '<ul class="menu dropdown-menu">'; 
      while ($dbResult->have_posts()) : $dbResult->the_post(); 
      $mykey_values = get_post_meta($id, 'city', false); 
       foreach ($mykey_values as $key => $value) { 
       $by_link = esc_url(add_query_arg(array('b' => $value))); ?> 
       <li><a href="<?php echo $by_link;?>"> <?php echo $value ?></a></li> 
      <?php } 
       endwhile; ?> 
     <?php wp_reset_query(); ?> 

<?php 
    echo '</ul>'; ?> 
</nav> 

Mein Problem ist, wie eine Verknüpfung der Werte und die Suche zu bekommen.

So einen Link zu bekommen, habe ich versucht,

$by_link = esc_url(add_query_arg(array('b' => $value))); ?> 
<li><a href="<?php echo $by_link;?>"> <?php echo $value ?></a></li> 

Und suche ich eine weitere Schleife gemacht und versucht, b-Wert zu erhalten:

<?php 
$meta_value = $_GET['b'] != '' ? $_GET['b'] : ''; 
$args2 = array(
    'post_type' => 'cpt', 
    'post_status' => 'publish', 
    'posts_per_page' => -1, 

    'meta_query' => array(
       array(
       'key' => 'city', 
       'value' => $meta_value, 
       'compare' => 'LIKE', 
      ), 
    ), 
); 
$dbResult2 = new WP_Query($args2); 
while ($dbResult2->have_posts()) : $dbResult2->the_post(); ?> 

       <?php get_template_part('content', get_post_type()); ?> 

      <?php endwhile; ?> 
        <?php wp_reset_query(); ?> 

Jede Hilfe ???

Antwort

0

Wenn ich Sie richtig verstehe, dann möchten Sie eine URL für jede Dropdown-Option erhalten. Wenn ja, können Sie so etwas tun -

echo '<ul class="menu dropdown-menu">'; 
    while ($dbResult->have_posts()) : $dbResult->the_post(); 

    $mykey_values = get_post_meta($id, 'city', false); 

foreach ($mykey_values as $key => $value) { 
    $by_link = esc_url(add_query_arg(array('b' => $value))); ?> 
    <li data-url="<?php echo $by_link;?>"><?php echo $value ?></li> 
<?php } 

endwhile; 
wp_reset_query(); 
echo '</ul>'; 

Sie können jedes Element mit 'Data-' Attributen erweitern. Sie können jedes gewünschte Datenattribut hinzufügen - Daten-bla, Daten-blabla, Daten-was auch immer.

Wenn Sie diese Daten benötigen, können Sie jQuery it- abrufen,

(function() { 
    $('.my-menu li').click(function() { 
    var li_url = $(this).attr('data-url'); 
    // Do something here... 
    } 
} 
+0

Hallo Netanel, danke für die Antwort, aber, wenn ich auf, passiert nichts und does't noch Suche nach Stellen mit der Aktuelle Meta – Tatiana

+0

Ich versuchte mit Jquery, aber da stimmt was nicht. Die Seite lädt, macht aber immer noch nicht die richtige Suche. Ich denke, etwas ist mit var search_val ... Hier ist der Code $ ('. Bairros-menu li'). Click (function() { \t var li_url = $ (this) .attr ('daten-url'); \t \t var search_val = $ (this) .find ('b') .val(); – Tatiana

Verwandte Themen