wp query - Display Search Results by tag_ID in my search.php

admin2025-06-03  6

I have my search.php working fine. But I'd like to display the search results in my search.php filtered by tag_ID when is coming from another search form. I've tried several things like: wp_parse_str, new WP_Query( {parameters here} ), etc. Basically I don't know how to modify the query :(

How can I modify the main query in order to do that?

Thank you very much for your help!

PD: I've been reading several post here but no one answered my question.

This is my form code:

<form role="search" method="get" class="form-inline cp-form-search search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>">
<input type="search" id="s" class="search-field form-control p-2"  placeholder="<?php echo esc_attr_x( 'Search '.$venue_archive_title, 'placeholder' ); ?>" aria-label="Search" value="<?php echo get_search_query(); ?>" name="s">
                    <input type="hidden" value="restaurants" name="venue_type_search" id="venue_type_search" />
                    <input type="hidden" value="title" name="orderby" id="orderby" />
                    <input type="hidden" value="ASC" name="order" id="order" />
                    <button type="submit"><img src="<?php echo get_template_directory_uri(); ?>/assets/images/search-white.svg" height="22"></button>
                </form>

I'd like to trigger the new query with my "venue_type_search" hidden input.

Thanks!

I have my search.php working fine. But I'd like to display the search results in my search.php filtered by tag_ID when is coming from another search form. I've tried several things like: wp_parse_str, new WP_Query( {parameters here} ), etc. Basically I don't know how to modify the query :(

How can I modify the main query in order to do that?

Thank you very much for your help!

PD: I've been reading several post here but no one answered my question.

This is my form code:

<form role="search" method="get" class="form-inline cp-form-search search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>">
<input type="search" id="s" class="search-field form-control p-2"  placeholder="<?php echo esc_attr_x( 'Search '.$venue_archive_title, 'placeholder' ); ?>" aria-label="Search" value="<?php echo get_search_query(); ?>" name="s">
                    <input type="hidden" value="restaurants" name="venue_type_search" id="venue_type_search" />
                    <input type="hidden" value="title" name="orderby" id="orderby" />
                    <input type="hidden" value="ASC" name="order" id="order" />
                    <button type="submit"><img src="<?php echo get_template_directory_uri(); ?>/assets/images/search-white.svg" height="22"></button>
                </form>

I'd like to trigger the new query with my "venue_type_search" hidden input.

Thanks!

Share Improve this question edited Feb 12, 2019 at 22:51 Daniel Garrido asked Feb 8, 2019 at 17:46 Daniel GarridoDaniel Garrido 33 bronze badges 1
  • You can use pre_get_posts. But, "another search form" - where's the code? – Sally CJ Commented Feb 10, 2019 at 13:23
Add a comment  | 

1 Answer 1

Reset to default 0

Filter it using pre_get_posts, like this:

function searchfilter($query) {
    if ($query->is_search && !is_admin() ) {
        if(isset($_GET['venue_type_search'])) {
            $venue_type = $_GET['venue_type_search'];

            $query->set('tag',array($venue_type));

        }       
    }
    return $query;
}
add_filter('pre_get_posts','searchfilter');
转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1748913830a314767.html

最新回复(0)