Search and filter post from external form

Post Grid allows you to search and filter post by using 3rd party form or external form by GET method, there is a filter hook available you can use form submission data to query post on front-end.

 

Create a custom form shortcode:

i have created a custom form to display via widget on sidebar

add_shortcode('post_grid_search_form','post_grid_search_form');

function post_grid_search_form(){

    $keyword = isset($_GET['keyword']) ? sanitize_text_field($_GET['keyword']) : '';
    $year = isset($_GET['year']) ? sanitize_text_field($_GET['year']) : '';
    $color = isset($_GET['color']) ? sanitize_text_field($_GET['color']) : '';

    ob_start();

    ?>
    <form method="get" action="">
        <p>
            <label>Search:</label><br>
            <input name="keyword" type="search" value="<?php echo $keyword; ?>" placeholder="Keyword..">
        </p>

        <p>
            <label>Year:</label><br>
            <input name="year"  type="text" value="<?php echo $year; ?>" placeholder="2019">
        </p>

        <p>
            <label>Color:</label><br>
            <input name="color" type="text" value="<?php echo $color; ?>" placeholder="Red">
        </p>

        <p>
            <input type="submit" value="Submit">
        </p>

    </form>
    <?php

    return ob_get_clean();

}

Here is screenshot how its look like

View post on imgur.com

View post on imgur.com

Use form-data:

You can get form submission data via filter hook to query post via post grid, here is the code

function post_grid_filter_query_args_extra($query_args){

    $keyword = isset($_GET['keyword']) ? sanitize_text_field($_GET['keyword']) : '';
    //$year = isset($_GET['year']) ? sanitize_text_field($_GET['year']) : '';
    //$color = isset($_GET['color']) ? sanitize_text_field($_GET['color']) : '';

    $query_args['s'] = $keyword;

    return $query_args;
}

add_filter('post_grid_filter_query_args','post_grid_filter_query_args_extra');

Here is the screenshot of search result after submit form

View post on imgur.com

The same way you can use form data for meta field queries or taxonomies or terms query and etc.