Wyszukiwanie na stronie. Formularz wyszukiwania, JSON i podpowiedzi.

☰

← Temu

Wyszukiwanie na stronie


Wyszukiwanie odbywa się po wysłaniu formularza ze zmienną «search». Typ danych dla wyszukiwania ustawia się za pomocą ścieżki (strony), na którą wysyłany jest formularz. Dla wyszukiwania w «Katalogu produktów» wysyłkę należy wykonać na stronę «/shop/».

Jak dodać formularz wyszukiwania w nagłówku strony?

W bloku/menu znajdującym się w nagłówku strony możesz dodać następujący kod:

Code: html
<div align="center" id="hotengine-search_form_block" itemscope itemtype="https://schema.org/WebSite">
<link itemprop="url" href="//{HOTENGINE-SC:site_url}/"/>
<form id="hotengine-search-searchinput" name="hotengine-search-searchinput" method="post" action="/pl/shop/" itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction">
<meta itemprop="target" content="//{HOTENGINE-SC:site_url}/pl/shop/?search={search}"/>
<label>
<input class="input" name="search" type="text" placeholder="Szukaj..." id="hotengine-smart_search_input" value="" itemprop="query-input">
</label>
<label>
<button type="submit" class="search-button">Szukaj</button>
</label></form>
</div>


Kod od razu zawiera mikrodane dla Google. W ścieżce wysyłania formularza (//{HOTENGINE-SC:site_url}/pl/shop/?search={search}) podany jest pl język, możesz go zmienić.

Przykład:


Styl CSS bloku z zastąpieniem przycisku wysyłania obrazem:

Code: Css
#hotengine-search_form_block{
position: relative;
width:300px;
float: right;
z-index:2;
height: 41px;
margin:33px 0px 33px 10px;
}

#hotengine-search_form_block input{   
height: 20px;
vertical-align: middle;
border: 1px solid #e5e5e5;
padding: 0.15em;
width: 20.0em;
color:#9c9b9b;
height: 20px;
background: #fff;
padding: 0 13px;
height: 41px;
}
#hotengine-search_form_block input[type="text"]{
text-indent:4px;height: 39px;
}
#hotengine-search_form_block .search-button{
background:#41474c;
border-radius:0px;
vertical-align:middle;
display:block;
position:absolute;
top:0px;
right:0px;
border:none;
color:#fff;
width:41px; height:41px;
text-align:center;
font-size:12px;
line-height:25px; 
cursor:pointer; overflow:hidden; 
}
#hotengine-search_form_block .search-button:after{
content:""; width:41px; height:41px; display:block; position: absolute; right:0px; top:0px; 
background:none; background-color:#d6d6d6;
-webkit-mask:url("data:image/svg+xml;base64,PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KDTwhLS0gVXBsb2FkZWQgdG86IFNWRyBSZXBvLCB3d3cuc3ZncmVwby5jb20sIFRyYW5zZm9ybWVkIGJ5OiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIj4KDTxnIGlkPSJTVkdSZXBvX2JnQ2FycmllciIgc3Ryb2tlLXdpZHRoPSIwIi8+Cg08ZyBpZD0iU1ZHUmVwb190cmFjZXJDYXJyaWVyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KDTxnIGlkPSJTVkdSZXBvX2ljb25DYXJyaWVyIj4KDTxwYXRoIGZpbGw9IiMwMDAwMDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTcuMjUgMmE1LjI1IDUuMjUgMCAxMDMuMTQ0IDkuNDU1bDIuMzI2IDIuMzI1YS43NS43NSAwIDEwMS4wNi0xLjA2bC0yLjMyNS0yLjMyNkE1LjI1IDUuMjUgMCAwMDcuMjUgMnpNMy41IDcuMjVhMy43NSAzLjc1IDAgMTE3LjUgMCAzLjc1IDMuNzUgMCAwMS03LjUgMHoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgoNPC9nPgoNPC9zdmc+") center center no-repeat; 
-webkit-mask-size:20px;
}
#hotengine-search_form_block .search-button:hover:after{
	background-color:#fff;
}
#hotengine-search_form_block .search-button:active:after{transform: translateY(1px);}

Jeśli zastąpisz ścieżkę /shop/ na /blog/, wyszukiwanie będzie odbywać się po katalogu artykułów.
Nadpisanie value pola input name="search" następuje automatycznie.

O znaczniku strony wyszukiwania (data-hotengine-marking) — w sekcji Mikrodane.

Logika wyszukiwania (warunki [AND] i [OR])


Domyślnie wyszukiwanie znajduje produkty zawierające całą frazę wyszukiwania. Aby doprecyzować zapytanie, użyj operatorów logicznych:
  • [AND] — «AND»: produkt musi zawierać wszystkie warunki jednocześnie.
  • [OR] — «OR»: wystarczy dopasowanie przynajmniej jednego warunku.
Priorytet: najpierw przetwarzane są wszystkie [AND], potem [OR]. Zapytanie Czapka[AND]niebieska[OR]uniwersalna oznacza «(Czapka AND niebieska) OR uniwersalna».

Logika zagnieżdżona (nawiasy): dla złożonych warunków używaj grup [AND ...] i [OR ...]. Słowa wewnątrz grupy oddzielone spacjami są łączone jej operatorem. Nawiasy są przetwarzane od wewnątrz na zewnątrz.

Przykłady:
  • BMW[AND]X6[AND]G06 — produkty zawierające BMW, X6 i G06.
  • BMW[OR]Audi — produkty BMW lub Audi.
  • [AND BMW [OR] X6] [AND] [OR Audi [AND] Q7] — (BMW OR X6) AND (Audi AND Q7).
  • [OR [AND torba skóra] [AND plecak tkanina]] — (torba AND skóra) OR (plecak AND tkanina).
Limit: do 20 warunków na jedno zapytanie. Przy niezrównoważonych nawiasach lub operatorze bez warunku wynik nie jest wyświetlany (ochrona przed nieprawidłowym zapytaniem).

Przykład: własny filtr wyszukiwania dla samochodów
Operatorów można używać nie tylko do doprecyzowania, ale też do tworzenia własnego filtra wyszukiwania. Wartości przechowuj w «Meta słowach kluczowych» produktu, oddzielone przecinkami — na przykład markę, model i lata produkcji:

Meta słowa kluczowe produktu
,AUDI,A6,C7 2011-2018,

Następnie wyszukaj po tych wartościach, oddzielając je przecinkiem i łącząc operatorami:

Zapytanie wyszukiwania
,AUDI,[AND],A6,[AND],C7 2011-2018,

Takie zapytanie znajdzie samochody AUDI A6 generacji C7 z lat 2011–2018.

Uniwersalny warunek przez [OR]: dodaj do słów kluczowych wspólną wartość (np. «uniwersalna») i użyj jej jako alternatywy — wtedy w wynikach pojawią się także produkty uniwersalne:

Zapytanie wyszukiwania
,AUDI,[AND],A6,[OR],uniwersalna,

Takie zapytanie oznacza «(AUDI AND A6) OR uniwersalna».

Dynamiczne filtry wielopoziomowe
Słów kluczowych można używać nie tylko do filtra wyszukiwania, ale też do budowania filtrów wielopoziomowych z powiązanymi listami. Na przykład dla samochodów: «Marka → Model → Lata» — każda kolejna lista pojawia się dopiero po wybraniu wartości na poprzednim poziomie. Powiązane listy buduje się w JavaScript na podstawie wartości z «Meta słów kluczowych» produktów. W ten sposób można stworzyć nawet osobną wyszukiwarkę po markach samochodów.

Przykład: powiązane listy (JavaScript)
const cars = {
  AUDI: ["A6", "Q7", "A3"],
  BMW:  ["X6", "X5", "3 Series"]
};
// po wybraniu marki wypełniamy listę modeli
brand.addEventListener("change", function () {
  model.innerHTML = "";
  (cars[brand.value] || []).forEach(function (m) {
    var o = document.createElement("option");
    o.textContent = m;
    model.appendChild(o);
  });
});

Wybrane wartości wstawiaj do zapytania wyszukiwania przez operatory [AND] (lub [OR] dla wartości uniwersalnych).

Wartości wygodnie prowadzić w bazie wartości — w «Meta słowach kluczowych» produktu oraz na stronie «Typy produktów i wartości cech».

Więcej o operatorach — w «Ustawieniach», w zakładce «Wyszukiwanie».


← Temu