Autor Zpráva
jakre
Profil
Na webu používám následující funkce zvýrazňující vyhledávaný text v titulku a obsahu vypsaných příspěvků.

function search_title_highlight() {
    $title = get_the_title();
    $keys = implode('|', explode(' ', get_search_query()));
    $title = preg_replace('/(' . $keys .')/iu', '<strong class="search-highlight">\0</strong>', $title);

    echo $title;
}

function search_content_highlight() {
        $content = get_the_content();
        $keys = implode('|', explode(' ', get_search_query()));
        $content = preg_replace('/(' . $keys .')/iu', '<strong class="search-highlight">\0</strong>', $content);

        echo '<p>' . $content . '</p>';
}

V souboru s výsledky vyhledávání (search.php) pak vypisuji <?php search_title_highlight(); ?> a <?php search_content_highlight(); ?>. Pro třídu search-highlight mám nastavenou žlutou barvu pozadí.


Problém nastavá při vyhledávání textu s diakritikou, kdy Wordpress vypíše i příspěvky obsahující hledaný text bez diakritiky, ale funkce mu třídu nenastaví (zůstane nezvýrazněný). Vhodným řešením je tedy zobrazovat pouze příspěvky s přesnou shodou s vyhledávaným textem (bez diakritiky). Jak toho docílím?

Edit: Dodávám ukázku - zobrazí se výsledky pro "stat" i "stát", ale zvýrazní se pouze "stat". Také jsem našel problém s vypsáním příspěvků pro prázdný dotaz a tečku.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0