Advanced search using a text input to search through only one category

Advanced search using a text input to search through only one category

Content Index :

Advanced search using a text input to search through only one category
Tag : php , By : antonio
Date : November 25 2020, 07:06 PM

I think the issue was by ths following , The tax query doesn't quite work like that. Your desired outcome should actually be somewhat simpler.
See your code, modified (with comments explaining what's going on):
function advanced_search_query( $query ) {
    if( $query->is_search() ) {
        // find the category by slug
        $term = get_category_by_slug( 'case-study' ); 
        // get the category ID
        $id = $term->term_id;
        // set the query argument to search within the category
        $query->set( 'cat', $cat_id );

    // removed "return $query" - $query is passed by reference, so no need to return

add_action('pre_get_posts', 'advanced_search_query');
<form method="get" id="advanced-searchform" role="search" action="<?php echo esc_url( home_url( '/' ) ); ?>">
    <input type="hidden" name="search" value="post">
    <input id="search-case-study" class="search-case-study" type="text" value="" placeholder="Search..." name="s" />
    <!-- add a hidden input that passes the desired category slug -->
    <input name="cat_slug" value="case-study" />
    <input type="submit" id="searchsubmit" value="Search" />
function advanced_search_query( $query ) {
    // check if search AND if "cat_slug" input was present
    if( $query->is_search() && ! empty( $_GET['cat_slug'] ) ) {
        // find the category by the slug passed in the input
        $term = get_category_by_slug( $_GET['cat_slug'] ); 
        // defensive check, in case the category could not be found
        if ( ! empty( $term->term_id ) ) {
            // get the category ID
            $cat_id = $term->term_id;
            // set the query argument to search within the category
            $query->set( 'cat', $cat_id );

    // removed "return $query" - $query is passed by reference, so no need to return

add_action('pre_get_posts', 'advanced_search_query');

No Comments Right Now !

Boards Message :
You Must Login Or Sign Up to Add Your Comments .

Share : facebook icon twitter icon

Advanced search , propagate input field with clicked text

Tag : javascript , By : chudq7
Date : March 29 2020, 07:55 AM
may help you . You can bind the click event to the links and modify the input textbox.
So, for example, you can assign each tag anchor a class, say, tag, and do the following:
$('.tag').click(function(evt) {
    var tags = $('#tags').val();
    var newTag = (tags == '') ? $(this).html() : ', ' + $(this).html();
    $('#tags').val(tags + newTag);

Display advanced search products from a particular category in magento

Tag : magento , By : Meg
Date : March 29 2020, 07:55 AM
like below fixes the issue You can add "Search by Category" in advanced search section of Magento. The step by step guide on implementing it is shown in Magento wiki: http://www.magentocommerce.com/wiki/5_-_modules_and_development/search_and_advanced_search/how_to_add_search_by_category_to_advanced_search
If you don't want to display the options to select category, just display none the select dropdown and by default make your desired category selected. So all the search results from that category will only be displayed.

How to apply advanced search on datatable using input text and select?

Tag : jquery , By : Mariocki
Date : March 29 2020, 07:55 AM
I hope this helps . This search API provides a way to add custom search in your datatables.

Google Analytics - advanced search filters for search category

Tag : google-analytics , By : Yolanda N. Ceron
Date : March 29 2020, 07:55 AM
help you fix your problem If you check the Google Analytics support page about regular expression, you won't find the negative lookahead syntax. So it is not explicitly stated, but most likely you are trying to use a syntax, that is not supported in Google Analytics. If you use this same regular expression in any your Behavior > Content > All pages report as a filter, you will also get a syntax error:

Tag : php , By : S. Fenz
Date : March 29 2020, 07:55 AM
Related Posts Related QUESTIONS :
  • Data attribute only returning first value
  • How to list all roles with Permissions,in spatie permission Package?
  • How to achieve this number pattern with n input
  • How to iterate array inside array data in laravel ,output are given below
  • To get output of movie with its genre
  • Extracting some data from a JS object literal string in PHP using Regex
  • axios and vuex are deleting wrong index in array
  • Setting empty CURLOPT_POSTFIELDS
  • Laravel 5.8 use subdomain as API endpoint beside domain.com/api
  • Error while add data in database SQL Server 2016
  • Does PhpStorm allow to skip PHPDoc tags when type hints is declared?
  • html classes are changed to Attributes
  • Using json to import multidimensional data
  • passing data from the view to the controller, where the data comes from another controller
  • How to extract integer and decimal numbers in PHP string correctly?
  • Parsing Sub-Object from an XML Feed with objects
  • Getting error "Unknown column 'text' in 'field list'"
  • How to properly get onedrive access token via php and curl
  • How to add spell check to a php function
  • Is it posible to create css rules with php?
  • Pretty URL with $_GET method
  • Wordpress always load same page - index.php
  • Find value in array and return with new from different array
  • PHP multiple file upload with different keys
  • Can't modify times one a time without weird errors
  • Get size of scraped image with domcrawler (Goutte)
  • Laravel - Ordering a collection of models
  • PHP Fatal error: Uncaught Error: Call to a member function setFetchMode() on boolean
  • Strict Standards: Only variables should be passed by reference in /main_dir/sub_dir/backup.php
  • Uncaught Google_Exception: (update) unknown parameter: 'copyRequiresWriterPermission'
  • Laravel 5 form does not redirect with old input
  • How to get values greater than or equal to in Mysql database sql when its a value like 1:00 PM?
  • PHP datediff overday issue
  • Masking an auto incrementing primary key
  • How to grab a String BEFORE a certain word
  • ZF2 Routing Multiple Controllers based on route constraints
  • How to deregister/dequeue jquery.sticky.js in Elementor (Pro)?
  • How to fix errors counting words in text plain with PHP?
  • How to get View data in Laravel in custom helper or directive
  • Creating a new data entry into a database with eloquent and trying to access the variable in the url
  • How to test authentication using Laravel Dusk?
  • PHP parse_str not getting all $_GET variables
  • Variable issues in php class
  • Get orders between dates in Codeigniter
  • Eloquent Special Chars Issue
  • Keeping leading zeros column Mysql
  • Current level navigation in Wordpress
  • Add a custom text to WooCommerce cart items if the product has a specific shipping class
  • Error connecting to CommissionJunction Token : [60] SSL certificate problem: unable to get local issuer certificate
  • How do I add a new key value pair to an object in PHP?
  • Http post request to php with dart
  • How to add a route in with blade into parameters of a component
  • How can i get the source of a 777 - CHMOD php file?
  • Convert 2010-04-16 16:30:00 to "Tomorrow Afternoon"
  • How can I hide a $_GET variable to be more secured in PHP?
  • Login to Gmail Inbox using Curl?
  • Upload Excel or CSV file to MySQL with PHP
  • Outlook Marking Email as Junk Email
  • Upload an image using class.upload.php via AJAX, display image in form using jQuery
  • mysql_connect() causes page to not display (WAMP)
  • shadow
    Privacy Policy - Terms - Contact Us © scrbit.com