Vlastní zobrazení výsledků vyhledávání

Úvodní stránka Fórum podpory WordPressu Problémy s WordPressem Vlastní zobrazení výsledků vyhledávání

Zvolené téma obsahuje celkem 7 odpovědí. Do diskuze (2 účastníci) se naposledy zapojil uživatel  Lukenzi a poslední změna je stará 11 let, 8 měsíců.

Aktuálně je na stránce zobrazeno 8 příspěvků - 1. až 8. (z celkem 8)
  • Autor
    Příspěvky
  • #2011

    lucky.man
    Participant
    Web

    Ahoj, výchozí vyhledávání WP řadí výsledky podle datumu. To není úplně ideální při větším množství příspěvků s podobným obsahem. Proto jsem začal používat plugin Relevanssi, který umí právě zohlednit relevanci výsledků vyhledávání.

    Teď bych ale potřeboval přidat k zobrazeným “relevantním” výsledkům možnost seřadit podle datumu (resp. od nejnovějšího), podobně jako má např. YouTube. Relevanssi umí v nastavení (adminu) seřadit buď podle relevance NEBO podle datumu. Šlo by vygenerované výsledky podle relevance v případě zájmu (volba uživatele) seřadit podle datumu?

    #12519

    Lukenzi
    Participant

    Zdravíčko :)

    Do šablony před a za výsledky vyhledávání bych vložil odkaz (nastylovaný třeba jako nějaké hezké tlačítko) s informací, že po kliknutí se výsledky vyhledávání setřídí podle data.

    Prvně si vytvořím funkci pro zobrazení odkazu na setřídění podle data

    function hledej_podle_data(){
    if(!empty($_GET["s"])){
    $hledane_slovo = strip_tags(addslashes($_GET["s"]));
    echo '< a href="'.get_option('siteurl').'/?s='.$hledane_slovo.'&orderby=post_date&order=desc">Seřadit podle data</a>';
    }else{ return '';}
    }

    Tuto funkci pak vložím do souboru functions.php šablony.

    Na konec vložím funkci hledej_podle_data(); všude tam, kde chci aby se mi zobrazil odkaz (tlačítko) na seřazení výsledků vyhledávání.

    EDIT: proč by to mělo fungovat? Na stránce pluginu je tato možnost popsána:

    If you want to give your users the ability to sort search results by date, you can just add a link to http://www.yourblogdomain.com/?s=search-term&orderby=post_date&order=desc to your search result page.

    #12520

    lucky.man
    Participant
    Web

    Ahoj :)

    Šlo by to tlačítko udělat “přepínací” na volbu “podle relevance” nebo “podle data nahrání”?, resp. by stačilo tam ty tlačítka dát dvě.

    Nebo není nějaký plugin na vyhledávání, který umožňuje uživatelské filtrování výsledků i podle dalších kritérií?

    #12521

    Lukenzi
    Participant

    Ono by se dalo i udělat tlačítko pouze jedno – pokud v url není proměnná “order” tak by bylo jasné, že výsledky vyhledávání jsou seřazené podle relevance (tedy normálně přes form) a zobrazilo by se nějaké tlačítko s možností zobrazit výsledky setříděné podle data.

    A naopak pokud by proměnná “order” v URL byla, je zase jasné, že výsledky jsou seřazeny podle data a proto by se zobrazilo tlačítko pouze s možností vyhledat podle relevance.

    Ale samozřejmě by šlo zobrazit obě tlačítka…

    Mimochodem, lze udělat i odkazy kdy se zobrazí vyhledané položky třeba pouze publikované jen za poslední týden, měsíc atd… Ukázka je třeba tady (francouzky).

    Každopádně plugin je to velice povedený, takže díky za tip :)

    #12522

    lucky.man
    Participant
    Web

    V tuhle chvíli by jedno tlačítko se změnou textu (podle data / podle relevance) stačilo. Můžeš poradit úpravu funkce?, sám si to nenapíšu. :) Díky.

    #12523

    Lukenzi
    Participant

    Kód jsem dal raději zde http://pastebin.com/RXb3kJXP

    Je třeba vložit do souboru šablony, který vypisuje výsledky vyhledávání (většinou search.php nebo i index.php)

    Důležité je vložit tento kód mimo podmínku while (have_posts()) : the_post(); jinak bude odkaz zobrazený u každého článku :)

    Odkaz má CSS třídu “search-button” takže jej lze snadno nastylovat na třeba tlačítko místo odkazu. Taky má atribut “rel=’nofollow'” aby jej neindexovali roboti. Pokud se plugin deaktivuje odkaz se nezobrazí.

    Snad jsem na nic nezapomněl, kdyby jo tak dej vědět ;)

    #12524

    lucky.man
    Participant
    Web

    Odzkoušeno, funguje přesně jak má – díky. :)

    Předpokládám správně, že původní funkci vloženou do functions.php šablony teď už můžu smáznout?

    #12525

    Lukenzi
    Participant

    Starou funkci určitě můžeš smazat a není za co :)

Aktuálně je na stránce zobrazeno 8 příspěvků - 1. až 8. (z celkem 8)

Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.

WordPress – novinky, návody a zajímavosti