WordPress – tvorba šablony od A do Z – 6.díl – Search


V minulém díle jsem vám slíbil, že se nyní podíváme na vyhledávání, které nám WordPress nabízí. Pokud se budeme držet základu, nejedná se o nic složitého a vyhledávání bude obratem na světě. Je však mnoho cest, jak se s vyhledáváním v rámci WordPressu poprat, ať už vytvořit určité „hodnocení“ výsledků nebo filtrovat výsledky na několik parametrů. My si však pro začátek ukážeme základní soubory a postupy.

Co budeme k vyhledávání potřebovat

Všeobecně posílá WordPress výsledky vyhledávání (pokud je použitý správný form) do souboru search.php, kde pomocí Loopy vypíšete výsledky běžným způsobem. Na codexu se také dočtete, že je vhodné použít soubor searchform.php, kde si definujete formulář, který bude vždy odkazovat do search.php a kdekoliv ho budete potřebovat, budete ho volat pomocí get_template_part() (nebo jiné php funkce).

Jak bude vypadat search.php

U souboru nemusíme dělat ani se starat o nic zvláštního. Vše nám zařídí WordPress a my se můžeme věnovat třeba stylům, ať to hezky „vypadá“.


<?php get_header(); ?>
<div id="content">

        <h1>Výsledky vyhledávání - <?php the_search_query(); ?> </h1>
        <?php if (have_posts()) : ?>
	   <?php while (have_posts()) : the_post(); ?>
		<?php get_template_part('loop', 'single'); ?>
	   <?php endwhile; ?>
        <?php endif; ?>

</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Soubor vypadá stejně jako většina našich základních loop souborů, díky názvu nám ale WordPress do soubor pošle ty „správné“ data. V nadpisu stránky jsem použil WordPress funkci – the_search_query() která vrátí string v podobě zadaného výrazu do formuláře s vyhledáváním. Díky tomu, že výsledky vyhledávání jsou v novém souboru, můžeme ovlivnit jejich vzhled, templatu jak se budou výsledky zobrazovat a další vlastnosti stránky.

Formulář pro vyhledávání

Jak se poprat s formulářem je několik cest. WordPress codex Vám doporučí několik variant od soubory searchform.php nebo přímo připraveného filtru v souboru functions.php. Já osobně preferuji možnost napsaní formuláře do souboru a ten následně volat. Jak to tedy bude vypadat?


<form role="search" method="get" id="searchform" action="<?php bloginfo('url'); ?>">
    <div><label class="screen-reader-text" for="s">Hledat výraz:</label>
        <input type="text" value="<?php the_search_query(); ?>" name="s" id="s" />
        <input type="submit" id="searchsubmit" value="Search" />
    </div>
</form>

Takto vypadá základní formulář, který je definován na WordPress codexu. Pokud ale dodržíte správný název v akci formu a se správně nadefinovaným inputem, můžete si do formu přidat prakticky co chcete. Díky názvu formuláře searchform.php můžeme využít WordPressfunkci get_search_form(), která Vám celý formulář vrátí a je pak možné ho použít v šabloně.

Budete se divit, ale můžeme zvolat pověstné „a je to“. Tyto dva soubory nám budou stačit proto, aby nám v šabloně začalo fungovat vyhledávání. Stačí si jen vybrat místo pro zobrazení formuláře a v případě zájmu si udělat jinou templatu pro zobrazení výsledků v podobě příspěvků.

Závěrem

Dnes jsme naučili naší WordPress šablonu fulltextové vyhledávání v rámci publikovaných příspěvků. Jedná se o jednoduchý, ale velmi efektivní nástroj. Později si ukážeme co je to příspěvek v databázovém modelu a co vše nám může vyhledávání prohledávat. To ale později, v příštím díle našeho seriálu se podíváme na archív a jeho snadné používání.

Tomáš Kocifaj, KTStudio.cz

, , , , ,

Komentáře jsou uzavřeny.