Hur man skapar avancerat sökformulÀr i WordPress för anpassade inlÀggstyper

Hur man skapar avancerat sökformulÀr i WordPress för anpassade inlÀggstyper

Har du nÄgonsin arbetat pÄ en WordPress-webbplats som har mÄnga anpassade inlÀggstyper? SÄsom Àr WordPress-sökning Àr en katastrof, varför mÄnga bloggare anvÀnder Googles anpassade sökning. Tja, vi arbetade pÄ en webbplats som har en hel del resursartiklar, videor, böcker och blogginlÀgg. Att anvÀnda standard WordPress-sökningen klippte bara inte det. Att anvÀnda Google Sök var inte heller ett genomförbart alternativ. DÀrför bestÀmde vi oss för att skapa ett avancerat sökformulÀr som lÄter anvÀndaren vÀlja vilket omrÄde pÄ webbplatsen de vill söka genom att begrÀnsa anpassade inlÀggstyper via kryssrutorna. AnvÀndare kan kombinera sina sökfrÄgor och viktigast av allt gjorde vi det sÄ att kryssrutorna sparas tillsammans med sökfrÄgan. Detta lÄter anvÀndaren se exakt vad de sökte efter, och de kan Àndra parametrarna. I den hÀr artikeln visar vi dig hur du skapar ett avancerat sökformulÀr i WordPress som anvÀnder kraften i WordPress-sökfrÄgan och begrÀnsar resultaten efter anpassade inlÀggstyper.

Det första du behöver göra Àr att öppna din searchform.php-fil eller var din sökformulÀr lagras. LÀgg sedan till följande fÀlt i formulÀrkoden:


<input type="hidden" name="post_type[]" value="articles" />
<input type="hidden" name="post_type[]" value="post" />
<input type="hidden" name="post_type[]" value="videos" /> 
<input type="hidden" name="post_type[]" value="books" />  

Glöm inte att ersÀtta vÀrdet med dina anpassade inlÀggstyper. Koden ovan begrÀnsar i princip dina sökresultat till dessa inlÀggstyper. Tja, om du mÀrkte att vi ganska mycket lagt till alla tillgÀngliga inlÀggstyper utom sidor. Det finns en bra anledning att göra det som vi kommer att komma till senare. SÄ se till att ta med ALLA inlÀggstyper som du vill söka efter med hjÀlp av huvudsökningsknappen. Dessa fÀlt Àr dolda, sÄ att anvÀndaren inte ser dessa.

Öppna sedan din search.php-fil och klistra in följande koder ovanför loopinnehĂ„llet, sĂ„ att dina anvĂ€ndare kan se alternativen högst upp.


<form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>">
<input type="text" name="s" id="s" <?php if(is_search()) { ?>value="<?php the_search_query(); ?>" <?php } else { ?>value="Enter keywords &hellip;" onfocus="if(this.value==this.defaultValue)this.value="";" onblur="if(this.value=='')this.value=this.defaultValue;"<?php } ?> /><br />
	
<?php $query_types = get_query_var('post_type'); ?>
    
<input type="checkbox" name="post_type[]" value="articles" <?php if (in_array('articles', $query_types)) { echo 'checked="checked"'; } ?> /><label>Articles</label>
<input type="checkbox" name="post_type[]" value="post" <?php if (in_array('post', $query_types)) { echo 'checked="checked"'; } ?> /><label>Blog</label>
<input type="checkbox" name="post_type[]" value="books" <?php if (in_array('books', $query_types)) { echo 'checked="checked"'; } ?> /><label>Books</label>
<input type="checkbox" name="post_type[]" value="videos" <?php if (in_array('videos', $query_types)) { echo 'checked="checked"'; } ?> /><label>Videos</label>
    
<input type="submit" id="searchsubmit" value="Search" />
</form>

Detta lÀgger till en sökruta ovanför dina resultat med sökfrÄgan i inmatningsrutan. Detta kommer ocksÄ att kontrollera vilka inlÀggstyper som söks i frÄgan och markera lÀmpliga kryssrutor. Kom ihÄg hur vi lagt till alla inlÀggstyper i det dolda fÀltet. Tja, vi lade till det sÄ att vi kan köra in_array-kontrollen och hÄlla kryssrutorna markerade. Det fanns ingen dokumentation om hur man gör det annars, sÄ det hÀr var det bÀsta sÀttet vi hittade som gör jobbet. Nedan följer en förhandsgranskning av hur sökrutan ser ut:

DÀrifrÄn kan anvÀndaren helt enkelt Àndra parametern som de vill.

Förhoppningsvis hjÀlpte den hÀr artikeln dem i nöd. NÀr vi undersöker fanns det massor av ofullstÀndiga artiklar. Hittade svaret att lÀgga till kryssrutorna i WordPress-supportforumet i en Àldre trÄd men de pratade bara om dolda fÀlt. Medan vi ville ge anvÀndarna möjlighet att Àndra sökfrÄgan. Rekvisita till @tammyhart för att peka oss pÄ rÀtt sÀtt för att göra den kontrollerade frÄgan för variabeln.