Úvodní stránka › Fórum podpory WordPressu › Problémy s WordPressem › Vlastní zobrazení výsledků vyhledávání
Štítky: Relevanssi, search, 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á 12 let, 7 měsíců.
-
AutorPříspěvky
-
27. srpna 2012 (18:33) #2011
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?
27. srpna 2012 (19:29) #12519Zdravíč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.
27. srpna 2012 (20:34) #12520Ahoj :)
Š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í?
28. srpna 2012 (13:24) #12521Ono 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 :)
28. srpna 2012 (18:41) #12522V 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.
29. srpna 2012 (7:29) #12523Kó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 ;)
29. srpna 2012 (20:13) #12524Odzkouš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?
30. srpna 2012 (15:26) #12525Starou funkci určitě můžeš smazat a není za co :)
-
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.