Har du noen gang ønsket å skjule et innlegg fra forsiden i WordPress? Det er enkelt å gjøre et innlegg passordbeskyttet eller privat, men i noen tilfeller kan det være ønskelig å bare skjule de.
Ikke nok med at du kan skjule innlegg fra forsiden, du kan skjule det fra arkiv, kategorier og søkeresultat. Da er innlegget kun synlig for de som har nettadressen direkte til innlegget.
Skjul et blogginnlegg fra forsiden med en utvidelse
Det første du trenger å gjøre er å installere og aktivere utvidelsen WordPress Hide Posts. For mer informasjon les hvordan installere en utvidelse i WordPress.
Når utvidelsen er aktivert, vil du kunne se alternativer for synlighet når du redigerer et innlegg.
Som du kan se fra skjermbildet ovenfor, kan du skjule innlegget fra forsiden, kategorier, søk, stikkord, forfatterside osv.
Velg de alternativene du ønsker og deretter lagre innlegget. Alt etter hvilke alternativer du valgte, kan du besøke disse sidene og se at det aktuelle innlegget ikke er oppført.
Skjul sider og innlegg i WordPress manuelt
Hvis du ikke vil benytte en utvidelse, eller har behov for å skjule egendefinerte innleggstyper som WooCommerce -produkter eller et innlegg fra RSS nyhetsstrøm, må du legge til litt kode i WordPress.
Koden kan legges til i WordPress ved hjelp av en utvidelse som Code Snippets, eller limes inn i functions.php fra Utseende > Temaredigering.
WordPress kjører en databasespørring for å hente og vise innlegg basert på nettsiden som åpnes. For å skjule et innlegg må du ekskludere det fra spørringen som henter innhold til den aktuelle siden.
Du trenger ID-nummeret for innlegget eller siden du vil skjule. I utgangspunktet kan du bare redigere et innlegg eller en side for å se ID-nummeret.
For mer informasjon les hvordan finne ID-nummer for sider og innlegg.
Skjul et innlegg fra forsiden
Koden under bruker is_home() for å finne ut om leseren har åpnet forsiden. Hvis det er riktig, ekskluderes innleggene du har skrevet inn i koden.
function wpo_exclude_home($query) {
if ($query->is_home() ) {
$query->set('post__not_in', array(3911, 1899));
}
}
add_action('pre_get_posts', 'wpo_exclude_home');
Koden ovenfor skjuler innlegg med ID 3911 og 1899.
Skjul et innlegg fra RSS nyhetsstrøm
Hvis du vil skjule en side eller et innlegg fra RSS nyhetsstrøm, benyttes koden is_feed().
function wpo_exclude_feed($query) {
if ($query->is_feed() ) {
$query->set('post__not_in', array(3911, 2199));
}
}
add_action('pre_get_posts', 'wpo_exclude_feed');
Koden ovenfor skjuler innlegg med ID 3811 og 2199.
Hvis du er logget inn som administrator vil du fortsatt kunne se innlegget i nyhetstrøm, men hos alle andre vil siden eller innlegget være skjult.
Skjul et innlegg fra søkefunksjon
Du kan også skjule spesifikke innlegg fra søkefunksjonen i WordPress med koden is_search().
function wpo_exclude_search($query) {
if ( $query->is_search() ) {
$query->set('post__not_in', array(8321, 4312));
}
}
add_action('pre_get_posts', 'wpo_exclude_search');
Koden ovenfor skjuler innlegg med ID 8321 og 4312.
Hvis du nå forsøker å søke etter innleggene du har skjult, vil du ikke finne de i søkeresultatene.
Skjul et innlegg fra arkiver
Hvis du vil skjule en side eller innlegg fra arkiver for emner, stikkord m.m. brukes koden is_archive().
function wpo_exclude_archive($query) {
if ( $query->is_archive() ) {
$query->set('post__not_in', array(3222, 9211));
}
}
add_action('pre_get_posts', 'wpo_exclude_archive');
Koden ovenfor skjuler innlegg med ID 3222 og 9211.
Skjul en side eller innlegg fra hele nettstedet
Så langt har du lært hvordan du kan skjule et innlegg eller side fra bestemte områder i WordPress. Hvis du bare ønsker å skjule en side eller innlegg helt, kan du kombinere kodene ovenfor.
function wpo_exclude_all($query) {
if ( $query->is_home() || $query->is_feed() || $query->is_search() || $query->is_archive() ) {
$query->set('post__not_in', array(2199, 1212));
}
}
add_action('pre_get_posts', 'wpo_exclude_all');
Denne koden skjuler innhold med ID 2199 og 1212 fra forsiden, RSS nyhetsstrøm, søkeresultater og arkiver.
Oppsummering
Du har nå lært hvordan du kan skjule et innlegg eller side fra noen eller alle områder i WordPress. Vær oppmerksom på at selv om de skjules fra brukergrensesnittet, vil de fremdeles være synlig for de som åpner nettadressen direkte innholdet.
Det samme problemet oppstår om søkemotorer som Google allerede har indeksert det du forsøker å skjule. Da vil brukere finne nettadressen fra søkemotorer.
Hvis du vil skjule noe fra søkemotorer kan du endre alternativer for indeksering av nettstedet. Det gjør du enkelt ved å bruke utvidelsen Yoast SEO, eller redigere robots.txt manuelt.
User-agent: *
Disallow: /permalenke-til-innlegg-eller-side
Denne metoden er dessverre heller ikke uten mangler. Det er nemlig ingen garanti for at alle søkemotorer respekterer reglene du legger inn i robots.txt.
I tillegg er det viktig å være oppmerksom på at robots.txt er tilgjengelig for alle. Hvem som helst kan åpne nettadressen direkte til filen og lese innholdet, dermed er reglene og innholdet du skjuler eksponert.
Når du ikke bare skal skjule innhold fra brukergrensesnittet, men ønsker å gjøre det utilgjengelig for uvedkommende bør du i stedet bruke passordbeskyttelse.
WordPress har innebygd støtte for å blokkere tilgang til innlegg eller sider med passord. Da er det kun de som har riktig passord som får se innholdet.