
🖥 Kuidas kuvada sisu ainult WordPressi avalehel
Avad WordPressi halduspaneeli ja taipad: reklaambänner kuulub avalehele, aga üksikute postituste juures näeb see pealetükkiv välja. Või tellimisvidin, mis avalehel e-posti aadresse kogub, võtab artikli sisus lihtsalt ruumi. Tuttav olukord?
WordPressil ei ole sisseehitatud lülitit „näita ainult avalehel", kuid ülesanne on lihtsalt lahendatav kahe PHP reaga. Ei mingeid pluginaid, ei mingeid umbkaudseid häkke failis functions.php. Allpool on kolm tõestatud meetodit alates tingimuslikest märgenditest kuni teemamallideni koos selgete koodinäidete ja selgitusega, mis vahe on is_front_page() ja is_home() vahel.
💡 Kiirülevaade:
- Kasuta oma teema failis header.php või footer.php funktsiooni is_front_page()
- Mõista erinevust is_front_page ja is_home vahel
- Tervete plokkide asendamiseks loo eraldi mallifailid
- Pluginaid pole vaja
Mis on WordPressi tingimuslikud märgendid
Tingimuslikud märgendid on WordPressi sisseehitatud PHP funktsioonid, mis kontrollivad tingimusi ja tagastavad true või false. Need toimivad nagu hargnemine: „kui leht on avaleht, näita bännerit; vastasel juhul ära tee midagi."
WordPressi tuum sisaldab kümneid selliseid funktsioone: is_single() üksikute postituste jaoks, is_page() lehtede jaoks, is_category() kategooriate jaoks, is_404() olematute aadresside jaoks, is_search() otsingulehe jaoks ja teised. Need võimaldavad täpselt juhtida sisu väljastamist ilma iga malli käsitsi muutmata; kontroll käivitub lehe laadimisel lennult.
Ülesande „ainult avalehel" jaoks on olulised kaks märgendit: is_front_page() ja is_home(). Need näivad sarnased, kuid käituvad lugemisseadetest sõltuvalt erinevalt ning nende segiajamine on algajatele maksnud palju tunde silumist.
Meetod 1: is_front_page(), peamine tööriist
is_front_page() tagastab true, kui külastaja on saidi esilehel, sellel, mis avaneb juuraadressil (https://yoursite.com/). See on sinu peamine tööriist valdava enamuse ainult avalehe sisu ülesannete jaoks.
Põhisüntaks:
1 <?php if ( is_front_page() ) : ?> 2 <div class="homepage-banner"> 3 <p>Специальное предложение только для посетителей сайта!</p> 4 </div> 5 <?php endif; ?> 6
Paiguta see kood faili header.php (kohe pärast avavat <body> märgendit) või faili footer.php; bänner ilmub eranditult avalehel ja puudub kõigil teistel lehtedel.
Näide kohandatud HTML-ploki väljastamisest:
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ähenemine toimib reklaamiskriptide, kohandatud stiilide või eraldi lühikoodi puhul: mähi soovitud plokk if ( is_front_page() ) sisse ja see laadib ainult seal, kus vaja.
Oluline nüanss: funktsiooni tuleb kutsuda pärast seda, kui WordPress on peamise andmebaasipäringu lõpetanud. Ära paiguta seda faili functions.php väljapoole konkse; enne wp tegevuse käivitumist tagastab see false. Ohutu paigutus: teemafailide sees nagu header.php, footer.php, sidebar.php ja front-page.php. Alternatiivina kasuta konkse: wp, template_redirect või wp_head.
Meetod 2: is_home(), blogilehe jaoks
is_home() tagastab true, kui külastaja on lehel, mis kuvab viimaseid blogipostitusi. Ja siin peitub lõks, mis püüab kinni peaaegu iga algaja.
Kood näeb välja sama lihtne:
1 <?php if ( is_home() ) : ?> 2 <p>Подпишитесь на нашу рассылку — новые статьи каждую неделю.</p> 3 <?php endif; ?>
Erinevus on seadetes. Mine halduspaneelile: Seaded → Lugemine → Sinu avalehel kuvatakse. Kui valitud on „Sinu viimased postitused", siis is_front_page() ja is_home() töötavad identselt: mõlemad tagastavad avalehel true. Aga kui valitud on „Staatiline leht", siis:
is_front_page()→truestaatilisel lehel, mille määrasid avaleheksis_home()→truelehel, mille määrasid postituste kuvamiseks (isegi kui see asub füüsiliselt aadressil/blog/)
Teisisõnu: is_home() on seotud blogi lehega, mitte saidi esilehega. Kui sul on staatiline maandumisleht ja blogi asub aadressil /blog/, siis is_home() avalehel (/) tagastab false.
Is_front_page() vs is_home(): võrdlustabel
Stsenaarium | Lugemisseaded | is_front_page() | is_home() |
|---|---|---|---|
Avaleht = viimased postitused | „Sinu viimased postitused" |
|
|
Avaleht = staatiline leht (külastaja aadressil | Staatiline leht + eraldi blogileht |
|
|
Blogileht = | Staatiline leht + eraldi blogileht |
|
|
Mis tahes muu leht või postitus | Mis tahes seaded |
|
|
Reegel on lihtne: kui vajad sisu rangelt avalehel, kasuta is_front_page(). Kui vajad sisu postituste vooga lehel (sõltumata sellest, kas see on avaleht), kasuta is_home().
Praktikas lahendatakse enamik ülesandeid is_front_page() abil. is_home() tuleb kasuks, kui blogi on eraldi lehel ja soovid näiteks kuvada „Populaarsed postitused" vidinat just seal, aga mitte maandumislehest avalehel.
Meetod 3: eraldi mallifailid
Kui on vaja asendada mitte rida või kahte, vaid tervet struktuurset plokki (külgriba, jalust või päist), muutub iga elemendi if sisse mähkimine kohmakaks. WordPress toetab spetsiifiliste mallifailide mehhanismi: lood faili konkreetse lehe jaoks ja tuum korjab selle automaatselt üles.
1. samm. Loo uus fail. Oma teemakaustas loo üks kolmest variandist:
sidebar-home.php, külgriba avalehe jaoksfooter-home.php, jalus avalehe jaoksheader-home.php, päis avalehe jaoks
2. samm. Täida see sisuga. Paiguta faili HTML ja PHP, mis peaks ilmuma ainult avalehel. Näiteks 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
3. samm. Kutsu faili mallis. Failis front-page.php või index.php (sõltuvalt sinu teemast) asenda standardne kutse:
1 <?php get_sidebar( 'home' ); ?> 2 <?php get_footer( 'home' ); ?> 3 <?php get_header( 'home' ); ?>
WordPress kasutab 'home' argumenti, et automaatselt asendada failid sidebar-home.php, footer-home.php ja header-home.php. Kui faili ei leita, kasutab see tagavaraks standardset sidebar.php.
Millal see meetod on õigustatud. Vali mallipõhine lähenemine, kui:
- Muutub terve plokk (mitte üks nupp, vaid kogu külgriba struktuur)
- Teema juba kasutab
front-page.phpja loogika ei segune - Plaanid saiti pikaajaliselt hooldada ja soovid puhast failikorraldust
Väikeste muudatuste jaoks on meetod ülepingutatud; piisab tingimuslikust märgendist is_front_page().
Võimalikud vead ja kuidas neid vältida
Kutsumine enne päringu lähtestamist. Kõige levinum probleem: is_front_page() failis functions.php ilma konksuta. Funktsioon tagastab vaikimisi false ja sa arvad, et kood on katki. Lahendus: mähi kontroll alati wp või template_redirect konksu sisse:
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 }
Segadus lugemisseadetega. Kui lülitasid saidi staatiliselt avalehelt viimaste postituste voole ja unustasid selle, käivitub is_home() äkki seal, kus ei peaks. Kontrolli esmalt Seaded → Lugemine.
Lehe ID kõvakodeerimine. Mõned arendajad kontrollivad if ( get_the_ID() == 5 ) asemel is_front_page(). See on habras: muuda avalehte seadetes ja kõik laguneb. Kasuta tingimuslikke märgendeid; need jälgivad seadeid automaatselt.
WordPressi tingimuslike märgendite teemat käsitletakse põhjalikumalt selles videos alates is_page() kuni kohandatud tingimusteni mittestandardsete mallide jaoks. Kui töötad teemadega regulaarselt, säästab 15 minutit vaatamist tulevikus tunde silumist.
⁉️🤔 Korduma kippuvad küsimused
Mida valida: is_front_page() või is_home()?
Enamikul juhtudel
is_front_page(). See tagastabtruesaidi esilehel, sõltumata sellest, kas see on staatiline leht või postituste voog. Kasutais_home()ainult siis, kui vajad konkreetselt blogilehte (näiteks/blog/), mitte avalehte.
Kas mõlemat märgendit saab kasutada samaaegselt?
Jah, konstruktsioon
if ( is_home() && ! is_front_page() )tagastabtrueainult blogilehel, kui see ei ole avaleht. Kasulik saitidele, millel on staatiline avaleht ja eraldi postituste sektsioon.
Kas is_front_page() töötab puhverdamise pluginatega?
Jah, kuid mööndusega. Tingimuslikud märgendid käivituvad serveri poolel enne HTML-i edastamist; puhverdamise pluginad (WP Rocket, W3 Total Cache) seda ei mõjuta. Kuid ESI-plokkide (Edge Side Includes) puhul kontrolli, kas sinu puhverdamise plugin neid toetab.
Kuidas kuvada avalehel erinevat sisu sisseloginud ja väljaloginud kasutajatele?
Kombineeri
is_front_page()funktsioonigais_user_logged_in(). Sisseloginud kasutajatele isiklik tervitus; külalistele registreerumise üleskutse. Kood võtab viis rida ja läheb failiheader.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; ?>
Kas alamteema vajab oma header-home.php faile?
Kui ülemteema juba sisaldab
header-home.php, pärib alamteema selle automaatselt. Ülekirjutamiseks loo alamteema kausta samanimeline fail. WordPress otsib malli esmalt alamteemast ja alles seejärel ülemteemast.
Mida kasutada aastal 2026: tingimuslikku märgendit või eraldi faili?
Valik taandub ülesande ulatusele. Pea meeles lihtsat reeglit: üks koodirida või üks HTML-plokk, kasuta is_front_page(). Kui muutub terve struktuurne plokk (külgriba, jalus, päis) koos oma märgendi ja loogikaga, loo eraldi mallifailid.
Praktikas käsitletakse enamikku ainult avalehe sisu ülesandeid kahe tingimusliku märgendi reaga. See on kiire, ei tekita teemasse lisafaile ja on kuus kuud hiljem saiti hooldades kergesti loetav: sa ei pea arvama, miks lõid sidebar-home.php, sest näed selget kontrolli otse mallis.
Proovi kohe: ava oma aktiivse teema header.php, leia koht pärast <body> ja lisa testplokk funktsiooniga is_front_page(). Kui kõik töötab, oled viie minutiga omandanud WordPressi tingimuslikud märgendid.



