Slik fjerner du de passordbeskyttede innleggene fra WordPress-loopen

Mange bloggere kombinerer en privat og en åpen blogg. Det vil si at de skriver om detaljerte ting fra sitt privatliv i tillegg til generelle aktuelle saker. WordPress lar deg derfor passordbeskytte innlegg. Dette gjør at dine lesere må skrive inn et passord for å lese innlegget. Ulempen for noen er at alle dine innlegg fortsatt vises på forsiden. Selv om dine lesere ikke kan se innholdet i de passordbeskyttede innleggene så står de ofte litt i veien for de som ikke har tilgang, men som kun vi lese de åpne innleggene.

For å løse dette har vi funnet en enkel og liten kode som fjerner de passordbeskyttede innleggene fra WordPress Loopen. For å ekskludere disse fra loopen kan du legge til koden nedenfor i functions.php i ditt WordPress tema:

// Create a new filtering function that will add our where clause to the query
function my_password_post_filter( $where = '' ) {
    // Make sure this only applies to loops / feeds on the frontend
    if (!is_single() && !is_admin()) {
        // exclude password protected
        $where .= " AND post_password = ''";
    }
    return $where;
}
add_filter( 'posts_where', 'my_password_post_filter' );

Koden trenger ingen redigering så lenge du ikke bruker noen heavy custom loop kode.

Så, hvor gjør man da av de passordbeskyttede innleggene? Lag en egen kategorie eller side som kun viser de passordbeskyttede innleggene. På denne måten får de som er ute etter dine private innlegg en bedre oversikt.

En liten bakdel er at koden fjerner innlegg fra alle arkivsider. Det vil si at du ikke kan lage en egen kategri med passordbeskyttede innlegg. Med koden overfor vil dine passordbeskyttede innlegg ikke vises i noen av Loopene rundt i WordPress