最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

wp query - Get all Posts If has same custom field values in Posts

programmeradmin10浏览0评论

I am trying to get a list of posts if has same zipcode values. Thanks in advance for the help.

<?php
    $query = new WP_Query( array(
'post_type'=> array('service'),
'posts_per_page' => -1,
'meta_query' => array( array(
   'key'=> 'zipcode',
   'value'=> ','.$zip.',',
   'compare'=> 'LIKE'
) )
 ));                 
    ?>      

    <?php if ( $query->have_posts() ) : ?>
<?php while ( $query->have_posts() ) : $query->the_post();  ?>

<h3><?php the_title(); ?> </h3>

    <?php endwhile; // end of the loop. ?>
    <?php wp_reset_query(); ?>
    <?php else: ?>
    No results found.
    <?php endif; ?>

I am trying to get a list of posts if has same zipcode values. Thanks in advance for the help.

<?php
    $query = new WP_Query( array(
'post_type'=> array('service'),
'posts_per_page' => -1,
'meta_query' => array( array(
   'key'=> 'zipcode',
   'value'=> ','.$zip.',',
   'compare'=> 'LIKE'
) )
 ));                 
    ?>      

    <?php if ( $query->have_posts() ) : ?>
<?php while ( $query->have_posts() ) : $query->the_post();  ?>

<h3><?php the_title(); ?> </h3>

    <?php endwhile; // end of the loop. ?>
    <?php wp_reset_query(); ?>
    <?php else: ?>
    No results found.
    <?php endif; ?>
Share Improve this question edited Mar 27, 2019 at 14:34 fuxia 107k39 gold badges255 silver badges459 bronze badges asked Mar 26, 2019 at 9:09 PraveenPraveen 2405 silver badges19 bronze badges 3
  • What does the above code do? Is it working? And what do the full values in zipcode look like? Can you reformat your code so it's easier to read? Indenting correctly should be enough – Tom J Nowell Commented Mar 26, 2019 at 9:42
  • @TomJNowell zipcode are numbers for example 12345. If posts have value 12345 in the custom field. then it should display all posts which have the 12345 value. The above code is working fine but displays only one post. – Praveen Commented Mar 26, 2019 at 9:45
  • Are those metavalues only zipcodes? Your code block implies it's actually a comma separated list e.g. 12346,67890,etc... – Tom J Nowell Commented Mar 26, 2019 at 14:23
Add a comment  | 

2 Answers 2

Reset to default 2

Following code will be proper for the meta query.

  $query_args = array(
        'post_type'   => 'service',
        'posts_per_page' => -1,
        'meta_query'  => array(
            array(
                'value'   => $zip,
                'compare' => 'LIKE',
                'key'     => 'zipcode',
            ),
        )
    );
   $query = new WP_Query($query_args);
   <?php if ( $query->have_posts() ) :while ( $query->have_posts() ) : $query->the_post();  ?>
       <h3><?php the_title(); ?></h3>
   <?php endwhile; // end of the loop. ?>
   <?php wp_reset_query(); ?>
   <?php else: ?>
      No results found.
   <?php endif; ?>

Hope it helps.

This code may help you to get perfect results.

<?php
$query_args = array(
    'post_type'   => 'service',
    'posts_per_page' => -1,
    'meta_query'  => array(
        array(
           'key'=> 'zipcode',
           'value'=> $zip,
           'type' => 'numeric',
           'compare'=> '=',
        ),
    )
);
$query = new WP_Query($query_args);
if ( $query->have_posts() ) :
    while ( $query->have_posts() ) : $query->the_post();  ?>
        <h3><?php the_title(); ?></h3>
    <?php endwhile;
    wp_reset_query();
else: ?>
    <h3>No results found.</h3>
<?php endif; ?>
发布评论

评论列表(0)

  1. 暂无评论