WordPress Vezérlőpult widgetek eltávolítása
A WordPress alapértelmezetten néhány bekapcsolt Dashboard (Vezérlőpult) widgettel érkezik. Nem vagyok ezeknek nagy rajongója, így megkerestem, hogyan lehet ezeket letiltani.
Szóval hogy miért nem szeretem ezeket? Két fő oka van a fenntartásomnak:
- Nagy eséllyel ezeket a widgeteket az ügyfél nem fogja használni, viszont azt sem tudja, hogy hol lehet ezeket kikapcsolni, így végső soron útban lesznek neki.
- Sokszor szoktam offline fejleszteni, amikor semmilyen internetkapcsolatom nincs. Ez azzal jár, hogy a helyben futó WordPress sem fogja elérni a hírforrásait, és amíg erre rájön a Dashboard betöltése során (nyilván addig blokkolva a teljes oldal betöltését), az nagyjából 10 másodperc - betöltésenként. Nem, ilyet nem játszunk.
Így én ezek közül többet le is szoktam tiltani: nem érdekelnek a WordPress-es event-ek (az ügyfelemet pedig még kevésbé), és jellemzően azokon az oldalakon, amiket készítek, nem az a lényeg, hogy első pillantásra lássuk, mennyi bejegyzés/hozzászólás van összesen (mert általában tudjuk, hiszen az ügyfél írja őket :D). Persze ezeket grafikusan is el lehet távolítani, de azt felhasználónként, kézzel kellene megtenni.
Szóval a hosszabb bevezető után jöjjön a szokásos: hozzuk létre az mu-plugins
mappában a remove-dashboard-widgets.php
fájlt, és illesszük be az alábbi kódrészletet:
Ezzel visszakapcsolhatatlanul (de nem visszafordíthatatlanul) letiltottunk minden, alapból érkező WordPress Vezérlőpult elemet. Az egyes sorok felett, kommentekben láthatjátok, hogy a sor pontosan melyik widgetet tiltja le.
Ha egy olyat szeretnétek letiltani, ami itt nem szerepel, akkor egy kis turkálással meg tudjátok találni, hogy mit kell unset-elni: a nagyon favágó módszer az, ha a global $wp_meta_boxes;
sor alá beillesztetek egy újabba ezt:
var_dump($wp_meta_boxes['dashboard']);
Ez közvetlenül a nyitó body
tag után kiköpi, hogy milyen widgetek vannak a különféle pozíciókban, ilyesmi formátumban (Chrome Dev Tools szépen beformázza):
Technikailag ez több, egymásba ágyazott tömb. A fenti snippetünk szépen elnavigál a tömbökön ahhoz az utolsó tömbelemhez, ami maga a Widget (mint a fákon az ágak és levelek: ha widget, akkor az levél, egyébként pedig ág), és unset-eli, ezzel törli a szülő tömbjéből. Így gyakorlatilag minden Vezérlőpult betöltésnél kivesszük a regisztrált widgetek közül anélkül, hogy plugin kódot kellene turkálnunk. ¯\_(ツ)_/¯
Tehát: ha egy olyan widgetet szeretnél tiltani, aminek nem ismered a pontos "útvonalát", akkor csak le kell olvasnod, hogy milyen elemek a szülői, és azokat "felsorolod", a fent ismertetett módon. Szóval ha véletlenül az "Unikornis szeretetszint" widget-et szeretnéd törölni (bár hogy bárki miért akarná törölni, nem értem :P), akkor a következő sorral tehetnéd ezt meg:
(Fontos, hogy nem az ID-ban levő szövegnek kell az utolsónak lennie a "célzás" során, hanem a szülő tömbje nevének (kulcsának).
Úgy tűnhet, hogy ez egy hosszabb anyag, de igazából csak sok a rizsa - ne ijedjetek meg, vessétek bele magatokat bátran! :)
Barna most a tanfolyamán dolgozik, így a videóit sajnos nélkülöznötök kell.