Add Search by Category Functionality to Your WordPress Site

If you have a site with a lot of content and a number of different categories, then there’s a good chance your visitors will want to search within certain categories and not others. The solution to this problem is to make your site searchable by individual categories.

Below is a way to manually do it.

Manually Expand the Functionality of Your Current Search Box

Another slightly more complicated method is to give your current search box “search by category” functionality. I found this trick at Deluxe Blog Tips.

Place the following code into the searchform.php file of your theme. (Appearance > Editor > Search Form – searchform.php) If your theme does not have a searchform.php file, you can create one:

<form id=»searchform» method=»get» action=»<?php bloginfo(‘url’); ?>»>
    <input type=»text» name=»s» id=»s» size=»15″ />
    <?php wp_dropdown_categories(‘show_option_none=Select category’); ?>
    <input type=»submit» value=»Search» />
</form>

Then put this code at the bottom of your functions.php file. (Appearance > Editor > Theme Functions – functions.php):

add_action(‘pre_get_posts’, ‘search_by_cat’);
function search_by_cat()
{
    global $wp_query;
    if (is_search()) {
        $cat = intval($_GET[‘cat’]);
        $cat = ($cat > 0) ? $cat : »;
        $wp_query->query_vars[‘cat’] = $cat;
    }
}

And here’s the result:

One nice feature of this method is that when you are on the category page for a specific category, the search box will automatically switch to that category for more searches.

Щелкните ниже, чтобы поставить оценку!
Всего: 0 В среднем: 0

Написать комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *