
🖥 Kuinka näyttää sisältöä vain WordPressin etusivulla
Avaat WordPressin hallintapaneelin ja huomaat: kampanjabanneri kuuluu etusivulle, mutta yksittäisissä artikkeleissa se näyttää tunkeilevalta. Tai tilauswidgetti, joka kerää sähköposteja etusivulla, vie vain tilaa artikkelin rungossa. Kuulostaako tutulta?
WordPress ei tarjoa sisäänrakennettua "näytä vain etusivulla" -kytkintä, mutta tehtävä ratkeaa helposti kahdella PHP-rivillä. Ei lisäosia, ei arvailupohjaisia virityksiä functions.php-tiedostossa. Alla on kolme toimivaksi todettua tapaa ehdollisista tageista teemamalleihin, selkeine koodiesimerkkeineen ja selityksineen is_front_page()- ja is_home()-funktioiden erosta.
💡 Pikaopas:
- Käytä is_front_page()-funktiota teemasi header.php- tai footer.php-tiedostossa
- Ymmärrä is_front_page- ja is_home-funktioiden ero
- Korvaa kokonaisia lohkoja luomalla erillisiä mallitiedostoja
- Lisäosia ei tarvita
Mitä ovat WordPressin ehdolliset tagit
Ehdolliset tagit ovat WordPressin sisäänrakennettuja PHP-funktioita, jotka tarkistavat ehtoja ja palauttavat arvon true tai false. Ne toimivat haarautumana: "jos sivu on etusivu, näytä banneri; muussa tapauksessa älä tee mitään."
WordPressin ydin sisältää kymmeniä tällaisia funktioita: is_single() yksittäisille artikkeleille, is_page() sivuille, is_category() kategorioille, is_404() olemattomille osoitteille, is_search() hakusivulle ja muita. Niiden avulla voit hallita sisällön näyttämistä tarkasti ilman, että muokkaat jokaista mallia käsin; tarkistus suoritetaan lennossa sivun latautuessa.
"Vain etusivulle" -tehtävässä kaksi tagia on tärkeimmät: is_front_page() ja is_home(). Ne näyttävät samankaltaisilta, mutta toimivat eri tavoin lukemisasetuksista riippuen, ja niiden sekoittaminen on maksanut aloittelijoille monta tuntia debuggausta.
Tapa 1: is_front_page(), ensisijainen työkalu
is_front_page() palauttaa true, kun kävijä on sivuston etusivulla, sillä joka avautuu juuriosoitteesta (https://yoursite.com/). Tämä on päätyökalusi valtaosaan etusivun sisältötehtävistä.
Perussyntaksi:
1 <?php if ( is_front_page() ) : ?> 2 <div class="homepage-banner"> 3 <p>Специальное предложение только для посетителей сайта!</p> 4 </div> 5 <?php endif; ?> 6
Sijoita tämä koodi tiedostoon header.php (heti avaavan <body>-tagin jälkeen) tai tiedostoon footer.php; banneri näkyy ainoastaan etusivulla ja puuttuu kaikilta muilta sivuilta.
Esimerkki mukautetun HTML-lohkon tulostamisesta:
1 <?php if ( is_front_page() ) : ?> 2 <section class="hero-promo"> 3 <h2>Бесплатная консультация</h2> 4 <p>Оставьте заявку — и мы перезвоним в течение 15 минут.</p> 5 </section> 6 <?php endif; ?> 7
Sama lähestymistapa toimii mainosskripteille, mukautetuille tyyleille tai erilliselle shortcodille: kääri haluttu lohko if ( is_front_page() ) -rakenteeseen, ja se latautuu vain siellä missä tarvitaan.
Tärkeä vivahde: funktiota on kutsuttava sen jälkeen, kun WordPress on suorittanut päätietokantakyselyn. Älä sijoita sitä functions.php-tiedostoon koukkujen ulkopuolelle; ennen wp-toiminnon käynnistymistä se palauttaa false. Turvallinen sijoituspaikka: teematiedostojen, kuten header.php, footer.php, sidebar.php ja front-page.php, sisällä. Vaihtoehtoisesti käytä koukkuja: wp, template_redirect tai wp_head.
Tapa 2: is_home(), blogisivulle
is_home() palauttaa true, kun kävijä on sivulla, joka näyttää uusimmat blogiartikkelit. Ja tässä piilee ansa, johon lähes jokainen aloittelija lankeaa.
Koodi näyttää aivan yhtä yksinkertaiselta:
1 <?php if ( is_home() ) : ?> 2 <p>Подпишитесь на нашу рассылку — новые статьи каждую неделю.</p> 3 <?php endif; ?>
Ero on asetuksissa. Mene hallintapaneeliin: Asetukset → Lukeminen → Etusivulla näytetään. Jos "Uusimmat artikkelisi" on valittuna, is_front_page() ja is_home() toimivat samalla tavalla: molemmat palauttavat true etusivulla. Mutta jos "Staattinen sivu" on valittuna, silloin:
is_front_page()→truestaattisella sivulla, jonka määritit etusivuksiis_home()→truesivulla, jonka määritit artikkelien näyttämiseen (vaikka se sijaitsisi fyysisesti osoitteessa/blog/)
Toisin sanoen: is_home() on sidottu blogisivuun, ei sivuston etusivuun. Jos sinulla on staattinen laskeutumissivusto ja blogi on osoitteessa /blog/, is_home() etusivulla (/) palauttaa false.
Is_front_page() vs is_home(): vertailutaulukko
Skenaario | Lukemisasetukset | is_front_page() | is_home() |
|---|---|---|---|
Etusivu = uusimmat artikkelit | "Uusimmat artikkelisi" |
|
|
Etusivu = staattinen sivu (kävijä osoitteessa | Staattinen sivu + erillinen blogisivu |
|
|
Blogisivu = | Staattinen sivu + erillinen blogisivu |
|
|
Mikä tahansa muu sivu tai artikkeli | Kaikki asetukset |
|
|
Sääntö on yksinkertainen: jos tarvitset sisältöä nimenomaan etusivulle, käytä is_front_page(). Jos tarvitset sisältöä artikkelisyötteen sivulle (riippumatta siitä, onko se etusivu), käytä is_home().
Käytännössä useimmat tehtävät ratkaistaan is_front_page()-funktiolla. is_home() on hyödyllinen, kun blogi on erillisellä sivulla ja haluat esimerkiksi näyttää "Suositut artikkelit" -widgetin juuri siellä, mutta et laskeutumissivun etusivulla.
Tapa 3: erilliset mallitiedostot
Kun sinun ei tarvitse korvata riviä tai kahta vaan kokonainen rakenteellinen lohko (sivupalkki, alatunniste tai ylätunniste), jokaisen elementin kääriminen if-rakenteeseen käy työlääksi. WordPress tukee mekanismia tietyille mallitiedostoille: luot tiedoston tietylle sivulle, ja ydin poimii sen automaattisesti.
Vaihe 1. Luo uusi tiedosto. Luo teemakansioosi yksi kolmesta vaihtoehdosta:
sidebar-home.php, etusivun sivupalkkifooter-home.php, etusivun alatunnisteheader-home.php, etusivun ylätunniste
Vaihe 2. Täytä se sisällöllä. Sijoita tiedostoon HTML ja PHP, joiden tulee näkyä vain etusivulla. Esimerkiksi 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
Vaihe 3. Kutsu tiedostoa mallissa. Korvaa tiedostossa front-page.php tai index.php (teemastasi riippuen) vakiokutsu:
1 <?php get_sidebar( 'home' ); ?> 2 <?php get_footer( 'home' ); ?> 3 <?php get_header( 'home' ); ?>
WordPress käyttää 'home'-argumenttia korvatakseen tiedostot sidebar-home.php, footer-home.php ja header-home.php automaattisesti. Jos tiedostoa ei löydy, se palautuu käyttämään vakio-sidebar.php-tiedostoa.
Milloin tämä tapa on perusteltu. Valitse mallipohjainen lähestymistapa, jos:
- Koko lohko vaihtuu (ei yksittäinen painike, vaan koko sivupalkin rakenne)
- Teema käyttää jo
front-page.php-tiedostoa eikä logiikka sekoitu - Suunnittelet sivuston pitkäaikaista ylläpitoa ja haluat siistin tiedostorakenteen
Pienille muokkauksille tapa on ylimitoitettu; is_front_page()-ehdollinen tagi riittää.
Mahdolliset virheet ja niiden välttäminen
Kutsuminen ennen kyselyn alustusta. Yleisin ongelma: is_front_page() functions.php-tiedostossa ilman koukkua. Funktio palauttaa hiljaisesti false, ja oletat koodin olevan rikki. Ratkaisu: kääri tarkistus aina wp- tai template_redirect-koukkuun:
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 }
Sekaannus lukemisasetuksissa. Jos vaihdoit sivuston staattiselta etusivulta uusimpien artikkelien syötteeseen ja unohdit sen, is_home() laukeaa yhtäkkiä siellä missä ei pitäisi. Tarkista ensin Asetukset → Lukeminen.
Sivun ID:n kovakoodaus. Jotkut kehittäjät tarkistavat if ( get_the_ID() == 5 ) is_front_page()-funktion sijaan. Tämä on haurasta: vaihda etusivu asetuksissa, ja kaikki hajoaa. Käytä ehdollisia tageja; ne seuraavat asetuksia automaattisesti.
WordPressin ehdollisten tagien aihetta käsitellään syvällisemmin tässä videossa, aina is_page()-funktiosta mukautettuihin ehtoihin epästandardeille malleille. Jos työskentelet teemojen kanssa säännöllisesti, 15 minuutin katselu säästää tunteja debuggausta tulevaisuudessa.
⁉️🤔 Usein kysytyt kysymykset
Kumpi valita: is_front_page() vai is_home()?
Useimmissa tapauksissa
is_front_page(). Se palauttaatruesivuston etusivulla riippumatta siitä, onko se staattinen sivu vai artikkelisyöte. Käytäis_home()-funktiota vain, kun tarvitset nimenomaan blogisivua (esimerkiksi/blog/), et etusivua.
Voiko molempia tageja käyttää samanaikaisesti?
Kyllä, rakenne
if ( is_home() && ! is_front_page() )palauttaatruevain blogisivulla, kun se ei ole etusivu. Hyödyllinen sivustoille, joissa on staattinen etusivu ja erillinen artikkeli-osio.
Toimiiko is_front_page() välimuistilisäosien kanssa?
Kyllä, mutta tietyin varauksin. Ehdolliset tagit suoritetaan palvelinpuolella ennen HTML-toimitusta; välimuistilisäosat (WP Rocket, W3 Total Cache) eivät vaikuta tähän. ESI-lohkojen (Edge Side Includes) kanssa varmista kuitenkin, että välimuistilisäosasi tukee niitä.
Miten näytän eri sisältöä etusivulla kirjautuneille ja kirjautumattomille käyttäjille?
Yhdistä
is_front_page()jais_user_logged_in(). Kirjautuneille käyttäjille henkilökohtainen tervehdys; vieraille rekisteröitymiskehotus. Koodi vie viisi riviä ja meneeheader.php-tiedostoon:
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; ?>
Tarvitseeko lapsiteema omat header-home.php-tiedostonsa?
Jos pääteema sisältää jo
header-home.php-tiedoston, lapsiteema perii sen automaattisesti. Korvataksesi sen luo samanniminen tiedosto lapsiteeman kansioon. WordPress etsii mallia ensin lapsiteemasta ja vasta sitten pääteemasta.
Mitä käyttää vuonna 2026: ehdollista tagia vai erillistä tiedostoa?
Valinta riippuu tehtävän laajuudesta. Muista yksinkertainen sääntö: yksi koodirivi tai yksi HTML-lohko, käytä is_front_page(). Jos koko rakenteellinen lohko (sivupalkki, alatunniste, ylätunniste) omine merkintöineen ja logiikoineen vaihtuu, luo erilliset mallitiedostot.
Käytännössä useimmat etusivun sisältötehtävät hoidetaan kahdella ehdollisen tagin rivillä. Se on nopeaa, ei tuota ylimääräisiä tiedostoja teemaan ja on helposti luettavissa, kun ylläpidät sivustoa puolen vuoden kuluttua: sinun ei tarvitse arvailla, miksi loit sidebar-home.php-tiedoston, koska näet nimenomaisen tarkistuksen suoraan mallissa.
Kokeile heti: avaa aktiivisen teemasi header.php, etsi kohta <body>-tagin jälkeen ja lisää testilohko is_front_page()-funktiolla. Jos kaikki toimii, olet oppinut WordPressin ehdolliset tagit viidessä minuutissa.



