
🖥 Hvordan vise innhold kun på WordPress-forsiden
Du åpner WordPress-administrasjonspanelet og innser: kampanjebanneret hører hjemme på forsiden, men på enkeltinnlegg ser det påtrengende ut. Eller en abonnementswidget som samler e-poster på forsiden, tar bare opp plass i artikkelteksten. Høres det kjent ut?
WordPress tilbyr ikke en innebygd «vis bare på forsiden»-bryter, men oppgaven løses enkelt med to linjer PHP. Ingen utvidelser, ingen gjetting eller snarveier i functions.php. Nedenfor finner du tre utprøvde metoder, fra betingede tagger til temamaler, med klare kodeeksempler og en forklaring på forskjellen mellom is_front_page() og is_home().
💡 Rask oversikt:
- Bruk is_front_page() i temaets header.php eller footer.php
- Forstå forskjellen mellom is_front_page og is_home
- For å erstatte hele blokker, opprett separate malfiler
- Ingen utvidelser kreves
Hva er betingede tagger i WordPress
Betingede tagger er innebygde PHP-funksjoner i WordPress som sjekker betingelser og returnerer true eller false. De fungerer som en forgrening: «hvis siden er forsiden, vis banneret; ellers, gjør ingenting.»
WordPress-kjernen inneholder dusinvis av slike funksjoner: is_single() for enkeltinnlegg, is_page() for sider, is_category() for kategorier, is_404() for ikke-eksisterende adresser, is_search() for søkesiden og andre. De lar deg kontrollere innholdsutdata nøyaktig uten å redigere hver mal manuelt; sjekken utføres i sanntid når siden lastes.
For «kun forside»-oppgaven er to tagger viktigst: is_front_page() og is_home(). De ser like ut, men oppfører seg forskjellig avhengig av leseinnstillingene, og forvirring mellom dem har kostet nybegynnere mange timer med feilsøking.
Metode 1: is_front_page(), det primære verktøyet
is_front_page() returnerer true når en besøkende er på nettstedets forside, den som åpnes på rot-URL-en (https://yoursite.com/). Dette er ditt hovedverktøy for de aller fleste oppgaver med innhold kun på forsiden.
Grunnleggende syntaks:
1 <?php if ( is_front_page() ) : ?> 2 <div class="homepage-banner"> 3 <p>Специальное предложение только для посетителей сайта!</p> 4 </div> 5 <?php endif; ?> 6
Plasser denne koden i header.php (rett etter det åpne <body>-taggen) eller i footer.php; banneret vil vises utelukkende på forsiden og være fraværende på alle andre sider.
Eksempel på utdata av en egendefinert HTML-blokk:
1 <?php if ( is_front_page() ) : ?> 2 <section class="hero-promo"> 3 <h2>Бесплатная консультация</h2> 4 <p>Оставьте заявку — и мы перезвоним в течение 15 минут.</p> 5 </section> 6 <?php endif; ?> 7
Samme tilnærming fungerer for annonseskript, egendefinerte stiler eller en separat shortcode: pakk den ønskede blokken inn i if ( is_front_page() ), så lastes den bare der det trengs.
Viktig nyanse: funksjonen må kalles etter at WordPress har fullført hoveddatabasespørringen. Ikke plasser den i functions.php utenfor hooks; før wp-handlingen utløses, vil den returnere false. Trygg plassering: inne i temafiler som header.php, footer.php, sidebar.php og front-page.php. Alternativt kan du bruke hooks: wp, template_redirect eller wp_head.
Metode 2: is_home(), for bloggsiden
is_home() returnerer true når en besøkende er på siden som viser de siste blogginnleggene. Og her ligger en felle som fanger nesten hver nybegynner.
Koden ser like enkel ut:
1 <?php if ( is_home() ) : ?> 2 <p>Подпишитесь на нашу рассылку — новые статьи каждую неделю.</p> 3 <?php endif; ?>
Forskjellen ligger i innstillingene. Gå til administrasjonspanelet: Innstillinger → Lesing → Forsiden viser. Hvis «Siste innlegg» er valgt, fungerer is_front_page() og is_home() identisk: begge returnerer true på forsiden. Men hvis «En statisk side» er valgt, da:
is_front_page()→truepå den statiske siden du angav som forsideis_home()→truepå siden du angav for visning av innlegg (selv om den fysisk ligger på/blog/)
Med andre ord: is_home() er knyttet til blogg-siden, ikke til nettstedets forside. Hvis du har en statisk landingsside og bloggen ligger på /blog/, vil is_home() på forsiden (/) returnere false.
Is_front_page() vs is_home(): sammenligningstabell
Scenario | Leseinnstillinger | is_front_page() | is_home() |
|---|---|---|---|
Forside = siste innlegg | «Siste innlegg» |
|
|
Forside = statisk side (besøkende på | Statisk side + egen bloggside |
|
|
Bloggside = | Statisk side + egen bloggside |
|
|
Enhver annen side eller innlegg | Alle innstillinger |
|
|
Regelen er enkel: hvis du trenger innhold strengt tatt på forsiden, bruk is_front_page(). Hvis du trenger innhold på siden med innleggsstrømmen (uavhengig av om det er forsiden), bruk is_home().
I praksis løses de fleste oppgaver med is_front_page(). is_home() er nyttig når bloggen er på en egen side og du for eksempel ønsker å vise en «Populære innlegg»-widget spesifikt der, men ikke på landingsforsiden.
Metode 3: separate malfiler
Når du trenger å erstatte ikke en linje eller to, men en hel strukturell blokk (et sidefelt, bunntekst eller topptekst), blir det tungvint å pakke hvert element inn i if. WordPress støtter en mekanisme for spesifikke malfiler: du oppretter en fil for en bestemt side, og kjernen plukker den opp automatisk.
Trinn 1. Opprett en ny fil. I temamappen din oppretter du én av tre varianter:
sidebar-home.php, et sidefelt for forsidenfooter-home.php, en bunntekst for forsidenheader-home.php, en topptekst for forsiden
Trinn 2. Fyll den med innhold. Plasser HTML-en og PHP-en som bare skal vises på forsiden i filen. For eksempel sidebar-home.php:
1 <div class="homepage-sidebar"> 2 <h3>О нашем проекте</h3> 3 <p>Мы помогаем малому бизнесу запускать сайты на WordPress с 2018 года.</p> 4 5 <h3>Подписка</h3> 6 <?php echo do_shortcode( '[newsletter_form]' ); ?> 7 </div> 8
Trinn 3. Kall filen i malen. I front-page.php eller index.php (avhengig av temaet ditt), erstatt standardkallet:
1 <?php get_sidebar( 'home' ); ?> 2 <?php get_footer( 'home' ); ?> 3 <?php get_header( 'home' ); ?>
WordPress bruker 'home'-argumentet for automatisk å erstatte filene sidebar-home.php, footer-home.php og header-home.php henholdsvis. Hvis en fil ikke blir funnet, faller den tilbake til standard sidebar.php.
Når denne metoden er berettiget. Velg maltilnærmingen hvis:
- Hele blokken endres (ikke en enkelt knapp, men hele sidefeltstrukturen)
- Temaet allerede bruker
front-page.phpog logikken ikke blandes - Du planlegger å vedlikeholde nettstedet langsiktig og ønsker ryddig filorganisering
For små redigeringer er metoden overdreven; den betingede taggen is_front_page() er tilstrekkelig.
Mulige feil og hvordan unngå dem
Kall før spørringsinitialisering. Det vanligste problemet: is_front_page() i functions.php uten en hook. Funksjonen returnerer stille false, og du antar at koden er ødelagt. Løsning: pakk alltid sjekken inn i en wp- eller template_redirect-hook:
1 add_action( 'wp', 'my_homepage_content' ); 2 function my_homepage_content() { 3 if ( is_front_page() ) { 4 add_action( 'wp_head', 'my_homepage_banner' ); 5 } 6 }
Forvirring med leseinnstillinger. Hvis du byttet nettstedet fra en statisk forside til strømmen av siste innlegg og glemte det, utløses is_home() plutselig der den ikke skal. Sjekk Innstillinger → Lesing først.
Hardkoding av side-ID. Noen utviklere sjekker if ( get_the_ID() == 5 ) i stedet for is_front_page(). Dette er skjørt: endre forsiden i innstillingene, så ryker alt. Bruk betingede tagger; de sporer innstillinger automatisk.
Temaet betingede tagger i WordPress dekkes grundigere i denne videoen, fra is_page() til egendefinerte betingelser for ikke-standard maler. Hvis du jobber med temaer regelmessig, vil 15 minutters visning spare timer med feilsøking i fremtiden.
⁉️🤔 Ofte stilte spørsmål
Hva skal jeg velge: is_front_page() eller is_home()?
I de fleste tilfeller
is_front_page(). Den returnerertruepå nettstedets forside uavhengig av om det er en statisk side eller innleggsstrømmen. Brukis_home()bare når du spesifikt trenger bloggsiden (for eksempel/blog/), ikke forsiden.
Kan begge taggene brukes samtidig?
Ja, konstruksjonen
if ( is_home() && ! is_front_page() )returnerertruebare på bloggsiden når den ikke er forsiden. Nyttig for nettsteder med en statisk forside og en egen innleggsseksjon.
Fungerer is_front_page() med hurtigbuffer-utvidelser?
Ja, men med et forbehold. Betingede tagger utløses på serversiden før HTML-levering; hurtigbuffer-utvidelser (WP Rocket, W3 Total Cache) påvirker ikke dette. Men med ESI-blokker (Edge Side Includes), bekreft at hurtigbuffer-utvidelsen din støtter dem.
Hvordan viser jeg forskjellig innhold på forsiden for innloggede og utloggede brukere?
Kombiner
is_front_page()medis_user_logged_in(). For innloggede brukere, en personlig hilsen; for gjester, en oppfordring til registrering. Koden tar fem linjer og plasseres iheader.php:
1 <?php if ( is_front_page() && is_user_logged_in() ) : ?> 2 <p>С возвращением! Вот ваши последние заказы.</p> 3 <?php elseif ( is_front_page() ) : ?> 4 <p>Добро пожаловать! Зарегистрируйтесь для персональных скидок.</p> 5 <?php endif; ?>
Trenger et child theme sine egne header-home.php-filer?
Hvis parent theme allerede inneholder
header-home.php, arver child theme den automatisk. For å overstyre, opprett en fil med samme navn i child theme-mappen. WordPress søker etter malen i child theme først og deretter i parent.
Hva skal man bruke i 2026: en betinget tagg eller en egen fil?
Valget koker ned til oppgavens omfang. Husk en enkel regel: én linje kode eller én HTML-blokk, bruk is_front_page(). Hvis en hel strukturell blokk (sidefelt, bunntekst, topptekst) med egen markup og logikk endres, opprett separate malfiler.
I praksis håndteres de fleste oppgaver med innhold kun på forsiden med to linjer av en betinget tagg. Det er raskt, skaper ikke ekstra filer i temaet og er lett å lese når du vedlikeholder nettstedet seks måneder senere: du slipper å gjette hvorfor du opprettet sidebar-home.php, fordi du ser den eksplisitte sjekken rett i malen.
Prøv det nå: åpne ditt aktive temas header.php, finn stedet etter <body>, og legg til en testblokk med is_front_page(). Hvis alt fungerer, har du mestret WordPress betingede tagger på fem minutter.



