获取元值列表并搜索Wordpress的帖子

时间:2017-04-22 23:44:40

标签: wordpress post search meta

如何链接meta_values以搜索当前元的帖子?

上面的代码,在下拉列表中显示城市meta_key和cpt帖子类型的所有meta_value

<?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>

我的问题是如何获取值和搜索的链接。

所以要获得一个链接,我试过

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

为了搜索我做了另一个循环并尝试获得b值:

<?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(); ?>

任何帮助???

1 个答案:

答案 0 :(得分:0)

如果我理解你是正确的,那么你想获得每个下拉选项的URL。如果是这样,你可以做这样的事情 -

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>';

您可以使用&#39;数据扩展任何元素 - &#39;属性。您可以添加您希望的任何数据属性 - data-bla,data-blabla,data-whatever。

当您需要该数据时,您可以使用jQuery来检索它 -

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