Niedawno pokazaliśmy, jak ograniczyć wyniki wyszukiwania dla konkretnych typów wpisów w WordPress. Teraz pokażemy Ci, jak możesz tworzyć różne/wiele formularzy wyszukiwania. W ten sposób każdy formularz może być ograniczony do wyszukiwania określonego typu postu. Chociaż nie jest to zbyt trudne, będzie to wymagało podstawowej wiedzy na temat szablonów WordPress.
Po pierwsze, trzeba będzie kilka formularzy wyszukiwania. Umieść poniższy kod w dowolnym miejscu na swoim blogu:
<form method=" get"id=" searchform"action="<?PHP bloginfo ('home');?>/"> <input type = "text" value = ""name=" s "id = "s" / > <input type = "hidden" name= "search-type"value=" normal" /> <input name= "submit" type = "submit"value=" Go" /> < / form>
Aby określić, jaki rodzaj wyszukiwania będzie wykonywał ten formularz, wystarczy zmienić wartość ukrytego pola. Teraz jest ustawiony na „normalny”, ale może to być cokolwiek chcesz. Następnie musimy zmodyfikować wyszukiwanie.plik php. Otwórz go i Zamień wszystko w nim na ten kod (najpierw skopiuj istniejący kod do schowka, będziesz go potrzebował za minutę):
<?php if (isset ($_GET['search-type'])) { $type = $_GET ['search-type']; if ($type = = 'random') { load_template (TEMPLATEPATH . '/normal-search.php'); } elseif ($type == 'books') { load_template (TEMPLATEPATH . '/książki-Szukaj.php'); } } ?>
Więc zakładamy, że masz dwa formularze wyszukiwania, normalny i książki. Ten kod po prostu przekierowuje wyszukiwanie do pliku php, który obsługuje to konkretne zapytanie. Teraz musimy tylko stworzyć te pliki. Więc śmiało, stwórz normalne wyszukiwanie.php i książki-Szukaj.plik php (po prostu zastąp „normal” i „books” dowolnymi wartościami, których używasz).
Teraz, w normalnym poszukiwaniu.PHP skopiuj i wklej następujący kod:
$args = array( 'post_type' => 'post' ); $args = array_merge ($args, $wp_query - >zapytanie ); query_posts ($args );
Natychmiast po tym wklej kod pętli ze schowka, który skopiowałeś z wyszukiwania.plik php. Razem ten kod przeszukuje tylko twoje normalne posty na blogu. Teraz, w książkach-Szukaj.plik php dodaj ten bit kodu i ponownie wklej pętlę zaraz po nim:
$args = array( 'post_type' => 'książki' ); $args = array_merge ($args, $wp_query - >zapytanie ); query_posts ($args );
Spowoduje to, że WordPress będzie szukał tylko niestandardowego typu postu „książek”. Możesz powtórzyć ten proces dla dowolnej liczby formularzy wyszukiwania.