Skip to content

Kõik WordPressist, veebiarendusest — ja mitte ainult

🔗 Kuidas lisada WordPressi menüüsse kodulehe link

🔗 Kuidas lisada WordPressi menüüsse kodulehe link

Navigeerimismenüü ilma kodulehe lingita on nagu välisuks ilma lingita. Külastaja satub otsingu kaudu sisulehele, loeb sisu läbi... ja tal pole aimugi, kuhu klõpsata, et kodulehele jõuda. Päises olev logo ei aita alati; mõned kasutajad otsivad instinktiivselt menüüst just „Kodu" kirjet.

Enne versiooni 3.0 polnud WordPressil standardses menüüredaktoris sellist võimalust, seega tuli kas koodi muuta või lisada kohandatud link käsitsi. Nüüd on kõik lihtsam: paar klõpsu ja kodulehe link on paigas. Ja kui oled arendaja või teemat kohandamas, on olemas wp_nav_menu_items filter, mis lahendab ülesande ühe funktsiooniga.

Allpool leiad mõlemad meetodid: visuaalse tavakasutajale ja programmeeritava neile, kes koodiga töötavad. Lisaks käsitleme, millal link vajab uuendamist ja mida teha, kui see ootamatult kaob.

💡 Kiirülevaade:

  • Lisa WordPressi menüüsse kodulehe link halduspaneeli kaudu vähem kui minutiga, ilma pluginateita.
  • Lisa link programmeeritavalt, kasutades wp_nav_menu_items filtrit teema failis functions.php.
  • Kontrolli ja uuenda URL-i pärast domeeni vahetamist või HTTPS-ile üleminekut.

1. Meetod: WordPressi halduspaneeli kaudu

See meetod töötab WordPress 3.0 ja uuematega, seega igal kaasaegsel saidil. Pluginaid ega koodimuudatusi pole vaja.

Logi halduspaneelile sisse ja liigu jaotisse Välimus → Menüüd. Vasakul näed plokke: „Lehed", „Postitused", „Kohandatud lingid" ja teisi, sõltuvalt paigaldatud pluginate ja sisutüüpide olemasolust.

Lehed plokis klõpsa vahekaarti Kõik (või vanemates versioonides „Kuva kõik"). Kõige esimene kirje on leht nimega „Kodu". Märgi selle kastike ja klõpsa Lisa menüüsse.

WordPressi menüüredaktori lehtede plokk kodulehe elemendiga

Kui kirje on lisatud, ilmub see paremal menüüstruktuuri. Lohista see soovitud asukohta; tavaliselt paigutatakse see esimeseks või viimaseks. Salvesta menüü, klõpsates Salvesta menüü, ja kodulehe link läheb saidil reaalajas üles.

Vaikimisi kasutab WordPress selle kirje jaoks kodulehe otsest URL-i (näiteks https://vash-sait.ru/). Seda on oluline meeles pidada: kui hiljem saidi teisele domeenile kolida või HTTP-lt HTTPS-ile üle minna, säilitab link vana aadressi. Pead avama menüüredaktori ja URL-i käsitsi parandama või kirje kustutama ja uuesti lisama (WordPress lisab siis jooksva aadressi automaatselt).

2. Meetod: programmeeritav lisamine filtri kaudu

Kui arendad kohandatud teemat või soovid, et kodulehe link lisataks automaatselt teema aktiveerimisel, kasuta wp_nav_menu_items filtrit. See püüab menüüelementide HTML-i enne väljastamist kinni ja võimaldab sul lisada oma elemendi.

Paiguta kood aktiivse teema (või alamteema, et mitte kaotada muudatusi uuendamisel) faili functions.php. Alternatiiviks on Code Snippets plugin: lood lõigu, kleebid koodi ja aktiveerid selle; muudatused on siis teemast sõltumatud.

Code Snippetsi plugin leht WordPressis
1/**
2 * Adds a "Home" link to the main WordPress menu.
3 *
4 * @param string $items HTML markup of menu items.
5 * @param object $args wp_nav_menu() arguments.
6 * @return string
7 */
8function sdstudio_add_menu_home_link( $items, $args ) {
9 // Target menu location — replace 'main' with your own value
10 if ( 'main' !== $args->theme_location ) {
11 return $items;
12 }
13
14 $home_link = sprintf(
15 '<li class="menu-item"><a href="%s">%s</a></li>',
16 esc_url( home_url( '/' ) ),
17 esc_html__( 'Home', 'textdomain' )
18 );
19
20 // The link is added first — put $items . $home_link if you need it last
21 $items = $home_link . $items;
22
23 return $items;
24}
25add_filter( 'wp_nav_menu_items', 'sdstudio_add_menu_home_link', 10, 2 );

Võtmeparameeter on 'main' tingimuses if. See on teema poolt funktsiooniga register_nav_menu() registreeritud menüüala (teema asukoha) nimetus. Oma nimetuse leiad teema failist functions.php: otsi üles register_nav_menu() või register_nav_menus() väljakutse ja kontrolli esimest argumenti. Enamasti on see primary või main.

Funktsioon on turvaline: esc_url() puhastab URL-i ja esc_html__() puhastab lingi teksti, toetades samas tõlkimist. Kui kasutad alamteemat, asenda 'textdomain' oma teema tekstidomeeniga.

Pärast koodi lisamist värskenda saiti ja kodulehe link ilmub menüüsse automaatselt. Seda pole vaja käsitsi eemaldada: lihtsalt kommenteeri välja või kustuta add_filter() väljakutse ja kõik taastub algsesse olekusse.

Halduspaneeli kaudu lisatud kodulehe link salvestab püsivalt kodeeritud URL-i, selle, mis oli saidi seadetes lisamise hetkel. Kolm levinud stsenaariumi, mil see katki läheb:

  • HTTP-lt HTTPS-ile üleminek. Menüüelement jätkab viitamist aadressile http://..., brauserid võivad kuvada segasisu hoiatuse või ümbersuunamine võib ebaõnnestuda. Lahendus: ava menüüredaktor, kustuta vana „Kodu" kirje ja lisa see uuesti; WordPress lisab jooksva https:// URL-i.

  • Domeeni vahetamine. Saidi kolimisel arenduskeskkonnast tootmiskeskkonda (staging.site.rusite.ru) või migreerimisel täiesti uuele domeenile. Menüüelement säilitab vana URL-i. Lahendus: sama mis ülal (kustuta ja lisa uuesti).

  • Alamkataloogist juurkataloogi kolimine. Kui sait kolib aadressilt site.ru/blog/ aadressile site.ru/, lähevad kõik püsivalt kodeeritud lingid katki. Pärast migreerimist käi läbi KÕIK menüüelemendid, mitte ainult kodulehe link.

Programmeeritaval meetodil (via wp_nav_menu_items) neid probleeme pole: home_url('/') tagastab alati jooksva kodulehe aadressi WordPressi seadetest.

Muide, kui töötad menüüdega sageli, vaata navigeerimisseadeid jaotises Välimus → Kohanda, kus saad menüüsid reaalajas hallata koos eelvaatega. Täpsemaks muutmiseks (ikoonide lisamine elementidele, mega-menüüd) on olemas spetsiaalsed tööriistad, kuid see on juba teise artikli teema.

Video: kodunupu lisamine 2 minutiga

Kui eelistad lugemisele vaatamist, siis siin on lühike ingliskeelne video samm-sammulise ekraanidemonstratsiooniga:

⁉️🤔 Korduma kippuvad küsimused

Kas ma saan lisada kodulehe lingi ilma pluginate ja koodita?

Jah, standardse WordPressi menüüredaktori kaudu: Välimus → Menüüd → Lehed plokk → märgi „Kodu" → Lisa menüüsse. See on põhifunktsionaalsus, saadaval alates versioonist 3.0.

Miks kadus kodulehe link menüüst pärast teema vahetamist?

Menüüd on WordPressis seotud teema poolt registreeritud menüüaladega (teema asukohad). Teemat vahetades kaovad vanad alad ja uutel võivad olla teistsugused nimed. Sinu menüü pole kuhugi kadunud; see lihtsalt muutus „määramata". Mine jaotisse Välimus → Menüüd → Halda asukohti vahekaart ja määra olemasolev menüü uue teema alale. Kõik elemendid, sealhulgas kodulehe link, taastuvad.

Menüüs on juba „Kodu" element, kuid see viib mingile konkreetsele lehele, mitte saidi juure. Kuidas seda parandada?

Tõenäoliselt lisati menüüsse konkreetne leht pealkirjaga „Kodu", mitte spetsiaalne „Esilehe" tüüp. Eemalda see element menüüst, seejärel leia Lehed plokist kirje nimega „Esileht" (WordPress märgib selle selgelt) ja lisa see. Kui sellist silti pole, kasuta „Kohandatud lingid": URL-i väljale sisesta / ja „Lingi teksti" väljale kirjuta „Kodu".

Kuidas lisada kodulehe link menüüs viimaseks, mitte esimeseks?

Programmeeritava meetodi puhul vaheta ühendamise järjekord: $home_link . $items asemel kirjuta $items . $home_link. Visuaalses redaktoris lohista lihtsalt „Kodu" element nimekirja lõppu ja salvesta menüü.

Kas koodis on vajalik kasutada esc_url() ja home_url()?

Jah, see on WordPressi parim tava. home_url('/') lisab dünaamiliselt jooksva saidi aadressi seadetest, nii et domeeni vahetamisel pole vaja koodi muuta. esc_url() puhastab erimärgid ja kaitseb XSS-rünnete eest. Puhastamise vahelejätmine tootmiskoodis on riskantne.

Kas koodimeetod töötab WordPressi mitmikpaigaldises?

Jah, home_url( '/' ) tagastab mitmikpaigaldises konkreetse võrgustikus oleva saidi URL-i (selle, mis on määratud selle alamsaidi seadetes). Igal võrgustiku saidil on oma kodulehe link. Kui vajad eri saitidele erinevat käitumist, ümbritse add_filter() väljakutse tingimusega, mis kontrollib ajaveebi ID-d get_current_blog_id() kaudu.

Esiteks kontrolli ilmselget: kas sa tõesti salvestasid menüü pärast elemendi lisamist? Nupp „Salvesta menüü" on lehe allosas; ilma sellele klõpsamata muudatusi ei rakendata. Kui menüü on salvestatud, kuid element puudub, ava sait inkognito režiimis (brauseri vahemälu peidab mõnikord hiljutised muudatused).

Teine tõenäoline põhjus on vahemällu salvestamise plugin (WP Rocket, W3 Total Cache, LiteSpeed Cache). Tühjenda vahemälu plugina halduspaneeli kaudu ja kontrolli saiti uuesti.

Kui see ei aita, lülita ajutiselt teema mõnele vaiketeemale (Twenty Twenty-Five või Twenty Twenty-Six). Kas element ilmus? Siis on probleem kohandatud teemas; selle wp_nav_menu() funktsioon võib olla üle kirjutatud ja filtrid eemaldatud. Kontrolli wp_nav_menu() väljakutset teema mallis: 'items_wrap' argument ei tohiks olla tühi string ja 'fallback_cb' peaks olema false ainult siis, kui keelad varuvariandi tahtlikult.

„2. meetodi" kood töötab iga teemaga, kui teema_asukoht on õige; see toimib kindlustusena juhuks, kui visuaalne meetod mingil põhjusel ebaõnnestub.

Kodulehe link menüüs on väike detail, mis loob usaldust. Külastaja, kes satub otsingu kaudu sisulehele, leiab sekundi murdosa jooksul tee tagasi algusesse ja jätkab avastamist. Ilma selleta sulgeb osa teie vaatajaskonnast lihtsalt vahekaardi. Kaks minutit menüüredaktoris või kümme rida koodi ja see sisenemispunkt ei lähe enam kunagi kaotsi.