Search code examples
phpwordpressadvanced-custom-fieldsacfpro

Can i filter the custom post type items by the URL parameter values?


URL:- abcdefghi/?state=18&district=DistrictName

I have a URL as I mentioned above, and I want to filter my Custom Post Type items by these parameters. I also have advanced custom fields for each item that contain the same values in the URL (state&district)

I just want the result as state & district filtered,

I used the meta_query method, but I didn't get any solution,

the below code is that I tried for the solution

$state = $_GET["state"];
        $district = $_GET["district"];

        echo $state;
        echo $district;

        $premium_member_args = array(
            'post_type' => 'premium-member',
            'post_status' => 'publish',
            'posts_per_page' => -1,
            'meta_query' => array(
                'key' => $state,
                'value' => $district,
            ),
        );

        $premium_member_query = new WP_Query( $premium_member_args );
        if ( $premium_member_query->have_posts() ):
        while ( $premium_member_query->have_posts() ) : $premium_member_query->the_post();
        $state_value = get_field( 'state'); 
        $district_value = get_field( 'district'

the image says all I want!


Solution

  • I GOT THE ANSWER!!

        <?php  
    $state = $_GET["state"];
    $district = $_GET["district"];
    $premium_member_args = array(
        'post_type' => 'premium-member',
        'post_status' => 'publish',
        'posts_per_page' => -1,
        'meta_query' => array(
            'relation' => 'AND',
            array(
                'key' => 'state',
                'value' => $state,
                'compare' => 'LIKE',
            ),
            array(
                'key' => 'district',
                'value' => $district,
                'compare' => 'LIKE',
            )
        )
    );
    $premium_member_query = new WP_Query( $premium_member_args );
    if ( $premium_member_query->have_posts() ):
        while ( $premium_member_query->have_posts() ) : $premium_member_query->the_post();
        ?>
            <h5 class="card-title"><?php echo the_title(); ?></h5>
        <?php
        endwhile;
    endif;
    wp_reset_postdata();
    ?>