Skip to content

Kaikki WordPressistä, web-kehityksestä — ja paljon muuta

🔒 Kuinka piilottaa WordPressin hallintapalkki kaikilta käyttäjiltä paitsi ylläpitäjiltä

🔒 Kuinka piilottaa WordPressin hallintapalkki kaikilta käyttäjiltä paitsi ylläpitäjiltä

Rakennat asiakkaalle sivuston, luovutat käyttöoikeudet, ja seuraavana päivänä saat puhelun: "Miksi sivustoni yläreunassa on joku musta palkki? En ymmärrä, se näyttää oudolta." Kuulostaako tutulta?

Oletuksena WordPress näyttää hallintapalkin (tumma paneeli aivan ruudun yläreunassa) kaikille kirjautuneille käyttäjille. Ylläpitäjälle tämä on kätevää: pika pääsy hallintanäkymään, sivujen muokkaukseen ja kommenttien hallintaan. Mutta tavalliselle käyttäjälle, tilaajalle tai asiakkaalle tämä palkki näyttää visuaaliselta hälyltä. Se peittää sivuston ylätunnisteen, aiheuttaa hämmennystä ja luo vaikutelman "keskeneräisestä työstä".

Tutustutaan kolmeen toimivaan tapaan poistaa WordPressin hallintapalkki WordPress kaikilta paitsi ylläpitäjiltä. Nopeasta profiiliasetuksesta siistiin koodiin functions.php-tiedostossa ja lisäosaan. Lisäksi bonuksena: miten työkalupalkin saa pois käytöstä kokonaan kaikilta, myös ylläpitäjiltä.

💡 Pika yleiskatsaus:

  • Tapa 1: poista hallintapalkki käsin käyttäjäprofiilista (2-3 käyttäjälle)
  • Tapa 2: lisää PHP-koodia functions.php-tiedostoon käyttäen show_admin_bar-koukkua (suositeltu tapa)
  • Tapa 3: asenna Hide Admin Bar Based on User Roles -lisäosa (ei vaadi koodia)
  • Bonus: piilota hallintapalkki kaikilta käyttäjiltä, myös ylläpitäjiltä

Mikä hallintapalkki on ja miksi se kannattaa poistaa käytöstä

Hallintapalkki (tunnetaan myös työkalupalkkina) on tumma vaakapalkki, joka ilmestyy aivan sivuston yläreunaan kirjautumisen jälkeen. Älä sekoita sitä hallintapaneeliin (/wp-admin): ne ovat eri asioita. Hallintapalkki näkyy sekä julkisella puolella että hallintanäkymässä.

Ylläpitäjille se sisältää pikalinkkejä: luo artikkeli, siirry muokkausnäkymään, katso kommentit. Toimittajille navigointia sisältöön. Mutta tilaajille tai WooCommerce-asiakkaille siellä on vain muutama kohta, kuten "Muokkaa profiilia", kun taas palkki vie 32 pikseliä korkeutta ja peittää ylätunnisteen.

Kun luovutat sivuston asiakkaalle tai käynnistät jäsenyysosion, hallintapalkista ei-etuoikeutetuille käyttäjille tulee ongelma:

  • asiakas luulee sivuston olevan rikki;
  • käyttäjä klikkaa vahingossa "Hallinta" ja päätyy /wp-admin-osoitteeseen (vaikka oikeudet olisivat rajatut, se on silti hämmentävää);
  • ylätunnisteen ulkoasu hajoaa, erityisesti mobiilissa.

Hallintapalkin poistaminen käytöstä muilta kuin ylläpitäjiltä ratkaisee kaiken tämän yhdellä kertaa.

WordPress-sivuston sivu ennen ja jälkeen hallintapalkin poistamista käytöstä

Tapa 1: poista käsin käyttäjäprofiilista

Yksinkertaisin tapa on poistaa rasti tietyn henkilön asetuksista. Sopii, kun käyttäjiä on vain vähän: kirjaimellisesti 2-3 tiliä.

Mene kohtaan Käyttäjät → Kaikki käyttäjät, vie hiiri halutun käyttäjän päälle ja klikkaa "Muokkaa". Etsi asetus "Näytä työkalupalkki sivustoa katseltaessa" ja poista rasti. Vieritä alas ja klikkaa "Päivitä käyttäjä".

Valmista. Hallintapalkki on kadonnut julkiselta puolelta tältä henkilöltä. Haittapuoli on ilmeinen: 50 käyttäjälle käytät tunnin yksitoikkoiseen työhön.

Tapa 2: koodia functions.php-tiedostossa (suositeltu tapa)

Yleispätevä ratkaisu mille tahansa käyttäjämäärälle. Yksi PHP-pätkä, ja hallintapalkki on piilotettu kaikilta, joilla ei ole ylläpitäjän oikeuksia.

WordPress tarjoaa show_admin_bar-suodattimen. Tätä virallinen kehittäjädokumentaatio suosittelee: suodatin käsittelee oikein sekä käyttäjän näyttöasetukset että yleiset säännöt. Vanha tapa, jossa kutsutaan suoraan show_admin_bar(false), toimii edelleen, mutta suodatin on siistimpi ja joustavampi.

Koodi lisätään aktiivisen teeman functions.php-tiedostoon. Turvallisin tapa on WPCode-lisäosan kautta (ilmainen): se poistaa kirjoitusvirheiden riskin eikä ole riippuvainen teeman vaihdoksista.

1/**
2 * Hide the WordPress admin bar for everyone,
3 * except administrators.
4 */
5add_filter( 'show_admin_bar', 'sdstudio_restrict_admin_bar' );
6
7function sdstudio_restrict_admin_bar( $show ) {
8 return current_user_can( 'administrator' ) ? $show : false;
9}

Miten se toimii. show_admin_bar-suodatinta kutsutaan joka kerta, kun sivu hahmonnetaan. sdstudio_restrict_admin_bar-funktio tarkistaa: jos nykyisellä käyttäjällä on administrator-kyvykkyys, se palauttaa alkuperäisen $show-arvon (sellaisena kuin se on määritetty ylläpitäjän profiilissa). Kaikille muille se palauttaa väkisin false, eikä hallintapalkkia näytetä.

Mihin koodi lisätään. Tässä kolme vaihtoehtoa:

  • WPCode (suositeltu): lisäosa → Code Snippets → Lisää Snippet → liitä koodi → Auto Insert → Tallenna. Toimii myös teeman vaihtamisen jälkeen.
  • Teeman functions.php: Ulkoasu → Teematiedosto-Editor → functions.php. Riski: teemapäivitykset ylikirjoittavat muutokset. Käytä vain lapsiteemassa.
  • Oma lisäosa: luo /wp-content/plugins/sdstudio-disable-admin-bar/sdstudio-disable-admin-bar.php, jossa on lisäosan otsikkotiedot ja sama koodi. Luotettava ja teemasta riippumaton.

Lisäämisen jälkeen avaa sivusto incognito-ikkunassa testitilillä, jolla on "Tilaaja"-rooli. Hallintapalkin pitäisi kadota.

Tapa 3: lisäosa niille, jotka eivät halua koskea koodiin

Ilmainen Hide Admin Bar Based on User Roles -lisäosa hoitaa tehtävän parilla klikkauksella. Se asennetaan tavalliseen tapaan: Lisäosat → Lisää uusi → hae nimellä → Asenna → Ota käyttöön.

Aktivoinnin jälkeen mene kohtaan Asetukset → Hide Admin Bar Settings. Näet listan kaikista sivuston rooleista: ylläpitäjä, toimittaja, kirjoittaja, tilaaja ja mahdolliset mukautetut roolit. Valitse rastilla ne roolit, joilta haluat piilottaa hallintapalkin, ja tallenna.

Lisäosan etu on selkeys. Näet kaikki roolit kerralla ja hallitset hallintapalkin näkyvyyttä ilman yhtäkään koodiriviä. Haittapuolena on yksi lisäosa lisää järjestelmässä. Jos sivustosi on jo valmiiksi täynnä laajennuksia, tapa 2 on parempi.

Bonus: miten hallintapalkki poistetaan käytöstä kaikilta, myös ylläpitäjiltä

Joskus hallintapalkki häiritsee jopa sinua. Esimerkiksi muotoilet sivuston ylätunnistetta ja musta palkki pilaa näkymän. Tai otat kuvakaappauksia portfolioosi.

Lyhin tapa on yksi rivi:

1add_filter( 'show_admin_bar', '__return_false' );

Tämä suodatin palauttaa väkisin false kaikille poikkeuksetta. Ylläpitäjä, toimittaja, tilaaja: hallintapalkki katoaa kaikilta julkisella puolella. Hallintanäkymässä (/wp-admin) työkalupalkki säilyy: WordPress ei ole poistanut sitä käytöstä hallinta-alueella versiosta 3.3 lähtien.

Jos haluat poistaa hallintapalkin myös hallintanäkymästä, lisää CSS:

1#wpadminbar { display: none !important; }
2html { margin-top: 0 !important; }

Toinen sääntö poistaa 32 pikselin marginaalin, jonka WordPress varaa hallintapalkille. Ole varovainen: ilman työkalupalkkia hallintanäkymässä menetät pika pääsyn artikkelien luontiin ja asetuksiin. Käytä vain väliaikaisesti, ulkoasun muokkaukseen tai kuvakaappauksiin.

⁉️🤔 Usein kysytyt kysymykset

Mitä eroa on hallintapalkilla ja WordPressin hallintapaneelilla?

Hallintapalkki (Toolbar) on tumma palkki aivan ruudun yläreunassa, joka näkyy julkisella puolella ja hallintanäkymässä kirjautumisen jälkeen. Hallintapaneeli (/wp-admin) on WordPressin täysi taustajärjestelmä: hallintanäkymä, artikkelilista, asetukset. Hallintapalkin poistaminen käytöstä ei estä pääsyä /wp-admin-osoitteeseen; käyttäjät voivat silti mennä sinne, jos tietävät URL-osoitteen.

Koodi ei toiminut, hallintapalkki näkyy edelleen. Mikä on vialla?

Kolme yleistä syytä. Ensimmäinen: tarkistat ylläpitäjän tilillä, ja tavan 2 menetelmä jättää hallintapalkin tarkoituksella ylläpitäjille; testaa tilaajatilillä. Toinen: välimuisti. Tyhjennä välimuistilisäosa (WP Rocket, LiteSpeed) ja avaa sivusto incognito-tilassa. Kolmas: koodi on lisätty väärään paikkaan. Lapsiteeman functions.php, kyllä. wp-config.php, ei; suodattimet eivät toimi siellä.

Voinko piilottaa hallintapalkin tietyltä roolilta, esimerkiksi vain tilaajilta?

Kyllä. Korvaa current_user_can( 'administrator' ) tarvittavan roolin tarkistuksella. Esimerkiksi piilottaaksesi tilaajilta: return current_user_can( 'subscriber' ) ? false : $show;. Tai käytä tavan 3 lisäosaa, jossa tämä tehdään valintaruuduilla.

Mitä hallintapalkille tapahtuu WordPress-päivityksen jälkeen?

Ei mitään. show_admin_bar-koukku on ollut olemassa versiosta 3.1 lähtien, eikä se ole katoamassa mihinkään. Se on osa ydintä, ei teemaa tai lisäosaa. Tavan 2 koodi toimii minkä tahansa WordPress-päivityksen jälkeen.

Onko turvallista poistaa hallintapalkki käytöstä asiakkailta?

Ehdottomasti. Hallintapalkki on käyttöliittymäelementti, ei turvamekanismi. Käyttöoikeudet määräytyvät käyttäjäroolin mukaan, eikä työkalupalkin poistaminen käytöstä vaikuta niihin. Asiakas ei menetä pääsyä siihen, mitä hänen oikeasti sallitaan tehdä.

Piilota hallintapalkki tai jätä se: mitä valita

Ylläpitäjille ja toimittajille hallintapalkki on työkalu. Pika pääsy artikkelien luontiin, kommenttien moderointiin ja muokkausnäkymään säästää kymmeniä klikkauksia päivässä. Kaikille muille se on visuaalista hälyä.

Jos sivustollasi on yli kolme käyttäjää, joiden rooli on toimittajaa alempi, käytä tavan 2 koodia. Minuutti, ja asia on ratkaistu pysyvästi. Toimii millä tahansa tilimäärällä, ei ole riippuvainen teemasta ja säilyy WordPress-päivityksissä. Nopeaan korjaukseen itsellesi käytä bonus-pätkää, jossa on __return_false.

Ja jos vasta opettelet WordPressiä ja koodi functions.php-tiedostossa tuntuu edelleen pelottavalta, tavan 3 lisäosa ratkaisee tehtävän ilman riskiä rikkoa mitään. Valitse roolit, laita rastit ruutuihin, tallenna. Kuukauden päästä, kun olet tottunut, korvaa lisäosa koodilla: vain yksi rivi.