Support » Plugin: WP Store Locator » Filter [wpsl_stores] in state order

  • Hi Tijmen,

    I have been trying to find a way to order the loop I have generated of the stores listed on my site.

    I can orderby title, but I’m hoping to create an alphabetical list based on the county/state of the store. I tried zip, to no affect, although title does work, so I have hope there is a solution.

    I will then be creating further lines to create a <h2> for each county/country before each output, but will likely do this with js for convenience.

    Below is my loop as I have it. Any clues welcomed.

    <?php $loop = new WP_Query( array( ‘post_type’ => ‘wpsl_stores’, ‘posts_per_page’ => -1, ‘orderby’=> ‘zip’, ‘order’ => ‘ASC’) ); ?>

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

    <p> <?php echo do_shortcode( ‘[wpsl_address]’ ); ?></p>

    <?php endwhile; wp_reset_query(); ?>

    https://wordpress.org/plugins/wp-store-locator/

Viewing 2 replies - 1 through 2 (of 2 total)
  • <?php $loop = new WP_Query( array( ‘post_type’ => ‘wpsl_stores’, ‘category’ => ‘153’, ‘posts_per_page’ => -1, ‘orderby’ => ‘meta_value title’, ‘meta_key’ => ‘wpsl_zip’, ‘order’ => ‘ASC’) ); ?>

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

    <?php echo do_shortcode( ‘[wpsl_address]’ ); ?>

    Updated, working displaying ZIP in asc order (1 – 9 – a – z).

    I’m still struggling with getting a header over each of these, I’d rather not use JS as mentioned before as I want this list for users who don’t have decent browsers or are on mobile where the map based solution is inelegant. Also, my customers often want to buy a product in an area they’re travelling too, so may not know the best town and postcode to enter into the search field.

    I’ll look into WP filter options.

    If anyone is interested: I’ve integrated here with jquery accordion. This pulls the taxonomy of the store categories and parents.

    <ul id=”accordion”>
    <?php

    // https://codex.wordpress.org/Function_Reference/get_terms
    # Retrieve upper level taxonomy entries (with no parent) eg Countrys
    $terms = get_terms(“wpsl_store_category”, array(
    “parent” => “0”
    ));

    # Loop through upper level taxonomy terms eg Countrys
    foreach($terms as $term) {

    echo ”

  • “;
    echo “<h1>” . $term->name . “</h1>“;# Posts Country Name as Heading
  • # Get the children of this term eg States
    $children = get_terms(“wpsl_store_category”, array(
    “child_of” => $term->term_id
    ));

    # Loop through children eg States
    echo ”

    // https://codex.wordpress.org/Class_Reference/WP_Query
    # Retrieve stores within found taxonomy eg Stores
    $lower = new WP_Query(array(
    “post_type” => “wpsl_stores”,
    “tax_query” => array(
    array(
    “taxonomy” => “wpsl_store_category”,
    “field” => “slug”,
    “terms” => $child->slug
    )
    ),
    “posts_per_page” => “-1”
    ));

    # Retrieve stores within found taxonomy eg Stores
    echo ”

      “;
      if($lower->have_posts()) {
      while($lower->have_posts()) {
      $lower->the_post();

    echo ”

  • “;echo do_shortcode( ‘[wpsl_address country=”false” state=”false”]’ );echo “
  • “; # Posts Stores within County
    // more post content

    }
    }echo “
    “;
    echo “
    “;}echo “
    “;# Closes country listing
    echo “
    “;}# Loop through upper level taxonomy terms

    ?>
    <!– #accordion –>

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Filter [wpsl_stores] in state order’ is closed to new replies.