1

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; ?>
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
    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
    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
    Mar 26, 2019 at 14:23

2 Answers 2

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.

0

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.