Begrijp de code snippet
De gegeven code snippet voegt een filterfunctie toe aan WordPress. Deze filterfunctie wordt uitgevoerd voordat WordPress de berichten ophaalt (pre_get_posts). Het controleert of de huidige aanvraag een zoekopdracht is en of de gebruiker geen beheerder is. Als dit het geval is, wordt het berichttype ingesteld op ‘post’, wat betekent dat zoekresultaten alleen berichten zullen zijn.
Voeg de code toe aan je WordPress thema
Voeg de onderstaande code toe aan het functions.php
bestand van je WordPress thema. Dit bestand bevindt zich meestal in de map van je thema en bevat functies die het gedrag van je WordPress site aanpassen.
<?php
/*
* @param WP_Query $query De WordPress query object.
* @return WP_Query Het gemodificeerde query object.
*/
function wpx_searchfilter( $query ) {
if ( $query->is_search && !is_admin() ) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter( 'pre_get_posts', 'wpx_searchfilter' );
Sla de wijzigingen op en test
Sla het functions.php
bestand op met de toegevoegde code. Ga vervolgens naar je WordPress-website en voer een zoekopdracht uit op de site. Je zult merken dat de zoekresultaten nu beperkt zijn tot alleen berichten.
Deze code is handig als je wilt dat zoekopdrachten standaard alleen berichten opleveren, zelfs als andere posttypen op je site aanwezig zijn. Pas het berichttype aan in de searchfilter
-functie als je wilt dat de zoekopdracht andere posttypen moet omvatten. Bijvoorbeeld, $query->set('post_type', 'page');
om alleen pagina’s weer te geven in de zoekresultaten.
Klinkt dit allemaal wat te technisch? Ik kan je helpen.