Alleen berichten weergeven in zoekresultaten

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.

me

Over Frank Schrijvers

Hey! Ik ben Frank Schrijvers, WordPress developer, webdesigner, vader en indoor climber. Ik ben het hart en de ziel van WPX en help je graag verder met je WordPress of WooCommerce website.

Heb je een leuk project en wil je met mij samenwerken?

Dat kan! Neem gerust contact op via mail of telefoon.