Jak přidat vyhledávání do menu (když není v šabloně)

**TB Search in Menu**
„https://cs.wordpress.org/plugins/tb-search-in-menu/“:https://cs.wordpress.org/plugins/tb-search-in-menu/

Using TB Search in Menu you can easily add a search item in your menu that will show a modern search form when clicked. All you need to do is activate the plugin and choose the menu location where you want your search item to be shown.

Přidání custom posts do výsledků vyhledávání

Do functions.php přidáme

/—code php
add_filter( ‚pre_get_posts‘, ‚tgm_cpt_search‘ );
/**
* This function modifies the main WordPress query to include an array of post types instead of the default ‚post‘ post type.
*
* @param mixed $query The original query
* @return $query The amended query
*/
function tgm_cpt_search( $query ) {
if ( $query->is_search )
$query->set( ‚post_type‘, array( ‚post‘, ‚movies‘, ‚products‘, ‚portfolio‘ ) );
return $query;
};
\—

Multikriteriální filtrování (vyhledávání) příspěvků

**Multiple Category Selection Widget**
„http://wordpress.org/extend/plugins/multiple-category-selection-widget/“:http://wordpress.org/extend/plugins/multiple-category-selection-widget/

This plugin gives you the ability to provide your users with a widget full of dropdowns based upon parent categories and their sub-categories.
You can now set up an AJAX chained select box. For example, if you have multiple countries, and multiple states for each country, you can get a user to select a country. Upon selecting the country, the plugin looks for any states under that country, and then shows the dropdown box for the states under that country beneath the country dropdown.

Multiple subcategories spanning multiple parent categories (though multiple categories inside a single parent cannot be chosen) are chosen and intelligently filter your posts.

Please note that this plugin, while it is a widget, can be used on a sidebar you define anywhere within your theme that you like. Think of it as a ‚block‘ area rather than a ‚sidebar‘.

*Alternativy*

**WP Ultimate Search**
„https://wordpress.org/plugins/wp-ultimate-search/screenshots/“:https://wordpress.org/plugins/wp-ultimate-search/screenshots/

Powerful AJAX-based search alternative which supports faceting queries by taxonomies, terms, location, and post metadata.

**Query Multiple Taxonomies**
„http://wordpress.org/extend/plugins/query-multiple-taxonomies/“:http://wordpress.org/extend/plugins/query-multiple-taxonomies/

Say you have two custom taxnomies defined: *genre* and *artist*.

Currently, you can do the following types of queries on your site:
?genre=jazz
?genre=jazz&cat=1

But you can’t do this:
?genre=jazz&artist=chet-baker

WordPress will just ignore one of the parameters. This plugin fixes that. It also comes with a drill-down navigation widget.

[* http://s.wordpress.org/extend/plugins/query-multiple-taxonomies/screenshot-1.png?r=358842 *]

**WP Custom Fields Search**
„http://wordpress.org/extend/plugins/wp-custom-fields-search/“:http://wordpress.org/extend/plugins/wp-custom-fields-search/

This plugin allows multiple form inputs to be configured to search different aspects of a post including custom fields.
It is designed to filter posts in a more structured way than the default wordpress search. Specifically it allows multiple form inputs to be configured to search different aspects of a post, i.e. one term could search the post content, one the post title and one could search a custom field associated with the post.

The blog admin is able to build a customised search form. It allows you to search by the standard post information and by custom fields and to choose what HTML form elements should be presented for each search field.

**Taxonomy Picker**
„http://wordpress.org/extend/plugins/taxonomy-picker/“:http://wordpress.org/extend/plugins/taxonomy-picker/

Taxonomy Picker is a widget which you can include in your sidebar to help visitors build complex queries using categories and your custom taxonomies by chosing terms from drop down boxes. The widget also includes a text search making it easy to search for text only within certain categories or taxonomies.
Results will be displayed using your theme’s standard search form so the results need no additonal styling.

„Demo »“:http://www.egyptological.com/find

**Úpravou kódu (bez pluginů)**

Výběr (průnik) z více štítků současně, zaškrtáváním checkboxů v šabloně stránky s filtrem:

/—code php

term_id.'“>‘.$tag->name.‘‚;
endforeach;
print $checkboxes;
?>

$value) {
// tag1 AND tag2 is chosen, add a plus after the tags.
$string .= $value.’+‘;
}
// Remove the last + symbol in the string
$tags = substr($string, 0, -1);
}

// build the url with the variables
$url = home_url().“?tag=$tags“;

// redirect to output page
wp_redirect($url); exit;
endif; ?>
\—

Výběr (průnik) z více kategorií současně, zaškrtáváním checkboxů:

U kategorií je třeba ještě nejprve přidat do *functions.php*
/—code php
// List categories with checkboxes
function get_categories_checkboxes( $selected_cats = null ) {
$all_categories = get_categories();
$o = ‚

    ‚;
    foreach($all_categories as $key => $cat) {
    if($cat->parent == „0“) $o .= __show_category($cat, $selected_cats);
    }
    return $o.‘

‚;
}

function __show_category($cat_object, $selected_cats = null) {
$checked = „“;
if(!is_null($selected_cats) && is_array($selected_cats)) {
$checked = (in_array($cat_object->cat_ID, $selected_cats)) ? ‚checked=“checked“‚ : „“;
}
$ou = ‚

  • ‚;
    return $ou;
    }

    // get category slug form id
    function get_cat_slug($cat_id) {
    $cat_id = (int) $cat_id;
    $category = &get_category($cat_id);
    return $category->slug;
    }
    \—

    a v šabloně stránky s filtrem pak

    /—code php

    $value) {
    // cat1 AND cat2 is chosen, add a plus after the cats.
    $slug = get_cat_slug($value);
    $string .= $slug.’+‘;
    }
    // Remove the last + symbol in the string
    $cats = substr($string, 0, -1);
    }

    // build the url with the variables
    $url = home_url().“/rubriky/“.$cats.“/“;

    // redirect to output page
    wp_redirect($url); exit;
    endif; ?>
    \—

    This shows 15 posts (total) from categories 3 and 11 and 9

    /—code php



    \—

    „List categories with checkboxes »“:http://translate.google.com/translate?hl=en&sl=it&tl=en&u=http%3A%2F%2Fwww.undolog.com%2Fcategory%2Fwordpress%2Fpage%2F2%2F

    „Filtering WordPress categories using undocumented hook »“:http://soulsizzle.com/wordpress/filtering-wordpress-categories-using-an-undocumented-hook/

    Rozšířené vyhledávání v rubrikách

    WordPress sice v základním nastavení žádné rozšířené vyhledávání nemá, ale s pomocí několika chytrých funkcí můžeme tento nedostatek napravit. Zdrojový kód se bude skládat ze dvou částí – vyhledávacího formuláře a speciální šablony pro page, jež realizuje samotné vyhledávání.

    Začneme tedy formulářem:

    <form action='<?php bloginfo( 'url' ) ?>/hledej' method='post'>
    <input type='checkbox' name='povidky'>Povídky
    <input type='checkbox' name='fejetony'>Fejetony
    <input type='checkbox' name='drabble'>Drabble
    <input type='submit' value='Hledat'>
    </form>

    Action odkazuje na url, kde bude umístěna vaše speciální vyhledávací stránka. Name u každého checkboxu je také názvem vyhledávané kategorie. Kód pro šablonu stránky vypadá takto:

    <?php
    /*
    * Template Name: Hledač
    */
    ?>
    <?php
    $cat = '';
    
    foreach($_POST as $key => $val){
    if($val == 'on') $cat .= $key . ',';
    }
    
    $the_query = new WP_Query('category_name=' . $cat);
    
    while ( $the_query->have_posts() ) : $the_query->the_post();
    echo '<li>';
    the_title();
    echo '</li>';
    endwhile;
    ?>

    Pokud uživatel zaškrtne políčka Povídky a Drabble, tak se uživatelovi ve výpisu zobrazí články z těchto dvou rubrik. Pokud byste chtěli spíše něco jako filtr, tedy že se zobrazí příspěvky, které jsou v rubrice Povídky a zároveň Drabble, bude třeba několik částí upravit. Už v samotném formuláři nemůžete uvádět názvy kategorií, ale jejich id. Změny na vyhledávací stránce vypadají takto:

    foreach($_POST as $key => $val){
    if($val == 'on') $cat[] = $key;
    }
    
    $the_query = new WP_Query(array( 'category__and' => $cat));
    

    Zvýraznění právě hledaných slov

    Několik následujících řádků kódu obalí všechna právě vyhledávaná klíčová slova do značky STRONG (class search-keyword). Kód je možné vložit do function.php ve Vašem template. Nebo jej můžete vložit rovnou do search.php někde těsně za volání funkce get_header(). Předpokladem samozřejmě je, že využíváte standardních vyhledávacích funkcí WordPress.

    function omSearchHeighlight($text)
    {
    $keys = explode(" ", get_search_query());
    $text = preg_replace('/('.implode('|', $keys) .')/iu', '<strong class="search-keyword">\0</strong>', $text);
    return $text;
    }
    
    add_filter('the_title','omSearchHeighlight');
    add_filter('the_content','omSearchHeighlight');
    add_filter('the_excerpt','omSearchHeighlight');
    
    // nezapomeňte strong element nastylovat např.
    // strong.search-keyword {background: #f3ff0f!important; color:#000!important;}

    Výsledkem je malé, ale užitečné, vylepšení výsledků vyhledávání, které Vás navíc nestojí téměř žádnou námahu. Ještě malá poznámka na závěr: Kód nedbá na velikost písmen.

    Zvýraznění hledaných dotazů

    **Search Hilite**
    „http://wordpress.org/extend/plugins/google-highlight/“:http://wordpress.org/extend/plugins/google-highlight/

    When someone is referred from a search engine like Google, Yahoo, or WordPress‘ own, the terms they search for are highlighted with this plugin.

    Prohledávání webu

    **Relevanssi**
    „http://wordpress.org/extend/plugins/relevanssi/“:http://wordpress.org/extend/plugins/relevanssi/
    „http://www.mikkosaari.fi/relevanssi/“:http://www.mikkosaari.fi/relevanssi/

    Náhrada standardního vyhledávání.

    Relevanssi replaces the basic WordPress search with a partial-match search that sorts the results based on relevance. It is a partial match search, so if user inputs several search terms, the search will find all documents that match even one term, ranking highest those documents that match all search terms.

    Relevanssi does some fuzzy matching too, so if user searches for something that doesn’t produce any results, Relevanssi will look for similar terms. Strict phrases using quotation marks (like „search phrase“) are supported.

    The matching is based on basic tf * idf weighing, with some extra features added like a boost for words that appear in titles.

    Relevanssi can create custom search result snippets that show the part of the document where the search hit was made. Relevanssi can also highlight the query terms in the search results.

    Relevanssi can keep a log of user queries and display both most popular queries and recent queries that got no hits.

    Relevanssi supports the hidden input field cat to restrict searches to certain categories (or tags, since those are pretty much the same). Just add a hidden input field named cat in your search form and list the desired category or tag IDs in the value field – positive numbers include those categories and tags, negative numbers exclude them. You can also set the restriction from general plugin settings (and then override it in individual search forms with the special field).

    In addition of post and page content (including tags and categories), Relevanssi can index comments and pingbacks. It can also expand shortcodes in post content before indexing, so that everything the user sees on the entry page will be included in the index.

    *Alternativy*

    **Dave’s WordPress Live Search**
    „https://wordpress.org/plugins/daves-wordpress-live-search/“:https://wordpress.org/plugins/daves-wordpress-live-search/

    Adds „live search“ functionality to your WordPress site. Uses the built-in search and jQuery.

    **Better Search**
    „https://wordpress.org/plugins/better-search/“:https://wordpress.org/plugins/better-search/

    Better Search replaces the default WordPress search with a better search that gives contextual results sorted by relevance.