
Nyligen visade vi dig hur du begrĂ€nsar sökresultat för specifika inlĂ€ggstyper i WordPress. Nu ska vi visa dig hur du kan skapa olika / flera sökformulĂ€r helt och hĂ„llet. PĂ„ sĂ„ sĂ€tt kan varje formulĂ€r begrĂ€nsas till att söka efter en specifik inlĂ€ggstyp. Ăven om detta inte Ă€r sĂ„ svĂ„rt kommer det att krĂ€va att du har en grundlĂ€ggande förstĂ„else för WordPress-mallar.
Först behöver du nÄgra sökformulÀr. Placera följande kod var du vill att de ska vara i din blogg:
<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>
För att ange vilken typ av sökning det hĂ€r formulĂ€ret gör, Ă€ndra bara vĂ€rdet pĂ„ det dolda fĂ€ltet. Just nu Ă€r den instĂ€lld pĂ„ “normal” men det kan vara vad du vill. DĂ€refter mĂ„ste vi Ă€ndra search.php-filen. Ăppna den och ersĂ€tt allt i den med den hĂ€r koden (kopiera den befintliga koden till ditt urklipp först, du behöver den pĂ„ en 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 . '/books-search.php'); } } ?>
SĂ„ vi antar att du har tvĂ„ sökformulĂ€r, normalt och böcker. Den hĂ€r koden omdirigerar helt enkelt sökningen till php-filen som hanterar den specifika frĂ„gan. Nu mĂ„ste vi bara skapa dessa filer. SĂ„ fortsĂ€tt och skapa en normal-search.php- och books-search.php-fil (ersĂ€tt bara “normal” och “books” med de vĂ€rden du har anvĂ€nt).
Nu, i normal-search.php kopiera och klistra in följande kod:
$args = array( 'post_type' => 'post' ); $args = array_merge( $args, $wp_query->query ); query_posts( $args );
Omedelbart efter detta klistrar du in loopkoden frÄn ditt urklipp som du kopierade frÄn search.php-filen. Tillsammans söker den hÀr koden bara i dina vanliga blogginlÀgg. Nu, i filen books-search.php, lÀgg till den hÀr koden och klistra in slingan igen direkt efter den:
$args = array( 'post_type' => 'books' ); $args = array_merge( $args, $wp_query->query ); query_posts( $args );
Detta kommer att leda till att WordPress bara söker efter den anpassade posttypen av “böcker”. Du kan upprepa denna process för sĂ„ mĂ„nga sökformulĂ€r som du vill.