13/12/2021
Er dit WordPress-dashboard fyldt med menupunkter og undermenuer, du aldrig bruger? Et overfyldt administratorpanel kan ikke blot virke uoverskueligt, men også udgøre en sikkerhedsrisiko eller forvirre brugere med begrænsede rettigheder. Heldigvis tilbyder WordPress fleksible måder at rydde op på, uanset om du er en udvikler, der ønsker at strømline bagpanelet for dine klienter, eller en almindelig bruger, der blot ønsker at fjerne et par uønskede navigationspunkter. Denne omfattende guide vil dykke ned i metoderne til at fjerne både dashboard-undermenuer og front-end navigationsmenupunkter, så du kan skabe et mere effektivt og brugervenligt WordPress-miljø.

Lad os udforske de forskellige strategier, fra simple klik til avanceret kode, og hjælpe dig med at genvinde kontrollen over dine WordPress-menuer.
- Fjernelse af Undermenuer i WordPress (For Udviklere)
- Fjernelse af Hovedmenupunkter i WordPress (For Udviklere)
- Fjernelse af Navigationsmenupunkter (For Brugere)
- Bedste Praksis og Overvejelser
- Ofte Stillede Spørgsmål (FAQ)
- Hvad hvis jeg fjerner noget vigtigt ved en fejl?
- Påvirker fjernelse af menuer webstedets funktionalitet?
- Kan jeg fjerne menuer for specifikke brugerroller?
- Hvor finder jeg en liste over alle tilgængelige menu_slugs og parent_slugs?
- Hvad er forskellen mellem at fjerne et menupunkt og at skjule det med CSS?
- Konklusion
Hvis du administrerer et WordPress-site for en klient eller ønsker at tilpasse dit eget dashboard, kan det være nødvendigt at fjerne specifikke undermenuer fra administratorpanelet. Dette er især relevant for at skjule funktionalitet, der ikke er relevant for slutbrugeren, eller for at forbedre sikkerheden ved at fjerne adgang til følsomme områder som tema- eller plugin-editoren.
WordPress tilbyder funktionen remove_submenu_page() til dette formål. Denne funktion er designet til at fjerne en eksisterende undermenu fra en topniveau-menu i WordPress-administrationen. For at denne funktion skal virke korrekt, skal den kaldes på det rigtige tidspunkt under WordPress' indlæsningsproces.
Syntaksen for remove_submenu_page() er som følger:
remove_submenu_page( string $parent_slug, string $menu_slug )$parent_slug: Dette er slug'en for den overordnede menu, som undermenuen tilhører. Eksempler inkludererthemes.php(for 'Udseende'),plugins.php(for 'Plugins'),options-general.php(for 'Indstillinger'),edit.php(for 'Indlæg'), ogupload.php(for 'Medier').$menu_slug: Dette er slug'en for den specifikke undermenu, du ønsker at fjerne. For eksempel er slug'en for temaeditorentheme-editor.php.
Det er afgørende, at du binder din kode til admin_menu hook'en med en høj prioritet. Hvorfor? Fordi de fleste undermenuer tilføjes under denne hook, og du skal sikre dig, at din fjernelseskode kører efter, at WordPress har tilføjet de menuer, du ønsker at fjerne. En prioritet på omkring 110 er ofte et godt udgangspunkt, da de fleste standardmenuer tilføjes med en standardprioritet på 10.
Vigtig advarsel: Brug ikke admin_init hook'en til dette formål, som det tidligere er blevet foreslået i nogle ældre vejledninger. Brug af admin_init kan potentielt ødelægge funktionaliteten af wp-admin/admin-ajax.php og forårsage uventede problemer på dit site.
Eksempel: Fjernelse af Tema-editoren
Et almindeligt scenarie er at fjerne tema-editoren (theme-editor.php) af sikkerhedsmæssige årsager, da den giver direkte adgang til at redigere temafiler, hvilket kan være farligt i de forkerte hænder.
function fjern_uonskede_undermenuer() {
// Fjern tema-editoren fra 'Udseende' menuen
remove_submenu_page( 'themes.php', 'theme-editor.php' );
// Eksempel: Fjern plugin-editoren
remove_submenu_page( 'plugins.php', 'plugin-editor.php' );
// Eksempel: Fjern 'Kommentarer' undermenuen fra 'Indlæg' (hvis du ikke bruger kommentarer)
// remove_submenu_page( 'edit.php', 'edit-comments.php' );
// Eksempel: Fjern 'Skriv nyt indlæg' fra 'Indlæg'
// remove_submenu_page( 'edit.php', 'post-new.php' );
}
add_action( 'admin_menu', 'fjern_uonskede_undermenuer', 110 );Denne kode skal placeres i din functions.php fil i dit tema eller, endnu bedre, i et custom plugin for at sikre, at ændringerne forbliver, selv hvis temaet opdateres.
Sikkerhedsovervejelser
Det er vigtigt at forstå, at fjernelse af en menu ikke erstatter behovet for at filtrere en brugers tilladelser passende. Selvom undermenuen er fjernet fra synligheden, kan brugere med den korrekte tilladelse stadig få adgang til den tilknyttede skærm direkte ved at indtaste URL'en. For fuldstændig sikkerhed bør du altid kombinere fjernelse af menuer med robust rolle- og tilladelsesstyring, for eksempel ved at bruge funktioner som current_user_can() til at kontrollere adgang.
Her er en oversigt over nogle almindelige overordnede slugs og de tilhørende undermenu slugs, som du ofte vil støde på:
| Parent Slug (Overordnet Menu) | Almindelig Undermenu Slug | Beskrivelse |
|---|---|---|
themes.php (Udseende) | themes.php | Temaer |
customize.php | Tilpas | |
nav-menus.php | Menuer | |
widgets.php | Widgets | |
theme-editor.php | Temaeditor | |
plugins.php (Plugins) | plugins.php | Installerede Plugins |
plugin-install.php | Tilføj nyt Plugin | |
plugin-editor.php | Plugineditor | |
options-general.php (Indstillinger) | options-general.php | Generelt |
options-writing.php | Skrivning | |
options-reading.php | Læsning | |
options-discussion.php | Diskussion | |
options-media.php | Medier | |
options-permalink.php | Permalinks | |
edit.php (Indlæg) | edit.php | Alle indlæg |
post-new.php | Tilføj nyt | |
edit-tags.php?taxonomy=category | Kategorier | |
edit-tags.php?taxonomy=post_tag | Tags | |
upload.php (Medier) | upload.php | Bibliotek |
media-new.php | Tilføj nyt | |
users.php (Brugere) | users.php | Alle brugere |
user-new.php | Tilføj ny bruger | |
profile.php | Din profil |
Denne tabel er ikke udtømmende, da plugins og temaer kan tilføje deres egne menuer og undermenuer. Du kan ofte finde de korrekte slugs ved at inspicere URL'en for den side, du ønsker at fjerne. Slug'en er typisk filnavnet efter wp-admin/.
Udover undermenuer kan du også fjerne topniveau-menupunkter fra WordPress-dashboardet ved hjælp af funktionen remove_menu_page(). Denne funktion fungerer på samme måde som remove_submenu_page(), men tager kun én parameter: slug'en for den topniveau-menu, du ønsker at fjerne.
remove_menu_page( string $menu_slug )$menu_slug: Dette er slug'en for den topniveau-menu, du ønsker at fjerne. Eksempler inkludererindex.php(for 'Dashboard'),edit.php(for 'Indlæg'),upload.php(for 'Medier'),themes.php(for 'Udseende'),plugins.php(for 'Plugins'),(for 'Brugere'),users.phptools.php(for 'Værktøjer'), ogoptions-general.php(for 'Indstillinger').
Ligesom med remove_submenu_page(), skal denne funktion også kaldes inden for admin_menu hook'en med en passende høj prioritet.
Hvis din hjemmeside ikke tillader kommentarer, kan du vælge at fjerne hele 'Kommentarer' menuen for at rydde op i dashboardet.
function fjern_hovedmenuer() {
// Fjern 'Kommentarer' menuen
remove_menu_page( 'edit-comments.php' );
// Eksempel: Fjern 'Værktøjer' menuen
// remove_menu_page( 'tools.php' );
// Eksempel: Fjern 'Dashboard' menuen (ikke anbefalet, da det er startskærmen)
// remove_menu_page( 'index.php' );
}
add_action( 'admin_menu', 'fjern_hovedmenuer', 110 );Bemærk, at edit-comments.php er slug'en for 'Kommentarer' hovedmenuen, selvom den teknisk set er en undermenu til den ikke-eksisterende topniveau-menu for kommentarer. Det er et særligt tilfælde i WordPress' menustruktur.
De ovenstående metoder er primært for at fjerne menuer fra WordPress-administrationen (dashboardet). Hvis du ønsker at fjerne elementer fra dine front-end navigationsmenuer – altså de menuer, der vises på din hjemmeside for besøgende – er processen langt enklere og kræver ingen kode.
Dette gøres direkte via WordPress' indbyggede menu-administrator:
- Log ind på dit WordPress-dashboard.
- Naviger til Udseende > Menuer.
- Vælg den menu, du ønsker at redigere, fra rullemenuen øverst på siden, og klik på 'Vælg'.
- På venstre side af skærmen vil du se en liste over tilgængelige menupunkter (sider, indlæg, brugerdefinerede links osv.). På højre side ser du strukturen af din nuværende menu.
- For at fjerne et enkelt menupunkt, klik på pilen nedad ved siden af menupunktets navn for at udvide det. Klik derefter på linket 'Fjern'.
- For at fjerne flere menupunkter på én gang, kan du bruge funktionen 'Masseselektion'. Klik på afkrydsningsfeltet mærket 'Masseselektion'. Når du har markeret denne boks, vil hvert menupunkt vise en afkrydsningsboks ved siden af titlen. Afkryds de elementer, du vil fjerne, og klik derefter på knappen 'Fjern valgte emner'.
- Når du har fjernet de ønskede menupunkter, skal du huske at klikke på knappen 'Gem menu' for at anvende dine ændringer.
Denne metode påvirker kun, hvordan din navigation vises på forsiden af din hjemmeside; den fjerner ikke selve indholdet (sider, indlæg osv.) eller ændrer noget i WordPress-dashboardet.
Bedste Praksis og Overvejelser
Når du foretager ændringer i WordPress' kernestruktur eller udseende, er det altid en god idé at følge nogle bedste praksisser for at undgå uforudsete problemer.
Brug et Child Theme eller Custom Plugin
Hvis du tilføjer kode til din functions.php fil for at fjerne menuer, skal du sørge for at gøre det i et child theme'sfunctions.php fil. Hvis du ændrer direkte i dit hovedtemas functions.php, vil dine ændringer blive overskrevet, næste gang temaet opdateres. Endnu bedre er det at oprette et lille, site-specifikt plugin. Dette sikrer, at dine tilpasninger forbliver intakte, uanset hvilket tema du bruger eller opdaterer.
Test Grundigt
Før du implementerer ændringer på et live-site, skal du altid teste dem i et staging-miljø. Dette giver dig mulighed for at verificere, at menuerne er fjernet korrekt, og at ingen uventede bivirkninger er opstået, uden at det påvirker dine besøgende.
Dokumenter Dine Ændringer
Især for udviklere: hold styr på, hvilke menuer du har fjernet, og hvorfor. Dette vil spare dig tid i fremtiden, hvis du eller en anden udvikler skal fejlfinde eller ændre menustrukturen igen.
Tilladelser Først
Husk, at fjernelse af en menu primært handler om at skjule den for visse brugere eller at rydde op i brugergrænsefladen. Det er ikke en erstatning for korrekt rolle- og tilladelsesstyring. Sørg for, at dine brugerroller har de mindst mulige rettigheder, der er nødvendige for at udføre deres opgaver. Hvis en bruger ikke skal have adgang til en bestemt funktion, skal du begrænse deres tilladelse til den funktion, uanset om menuen er synlig eller ej.
Ofte Stillede Spørgsmål (FAQ)
Hvad hvis jeg fjerner noget vigtigt ved en fejl?
Hvis du har fjernet en undermenu eller hovedmenu ved en fejl ved hjælp af kode, kan du blot fjerne den tilsvarende remove_submenu_page() eller remove_menu_page() linje fra din kode, gemme filen, og menuen vil dukke op igen. Hvis du har fjernet et navigationsmenupunkt via 'Udseende > Menuer', kan du nemt tilføje det igen fra listen over tilgængelige menupunkter på venstre side.
Generelt nej. Fjernelse af menupunkter fra dashboardet skjuler blot adgangen til visse skærme. Selve den underliggende funktionalitet (f.eks. plugins, temaer, indstillinger) forbliver intakt, medmindre du også deaktiverer eller sletter de tilknyttede plugins/temaer. Hvis du fjerner navigationsmenupunkter, vil det kun påvirke, hvordan besøgende navigerer på din hjemmeside, ikke selve indholdet.
Ja, absolut! Dette er en meget almindelig praksis. Du kan indkapsle din remove_submenu_page() eller remove_menu_page() kode i en betinget erklæring, der kontrollerer den nuværende brugers rolle eller kapacitet. For eksempel:
function fjern_menuer_for_abonnenter() {
if ( current_user_can( 'subscriber' ) ) {
remove_menu_page( 'edit.php' ); // Fjern 'Indlæg' for abonnenter
}
}
add_action( 'admin_menu', 'fjern_menuer_for_abonnenter', 110 );Dette giver dig finmasket kontrol over, hvem der ser hvad i dit WordPress-dashboard.
Den mest pålidelige måde at finde de korrekte slugs på er ved at inspicere kilden til WordPress-administrationen eller ved at bruge WordPress' kodekilder og udviklerressourcer. Ofte kan du finde den nødvendige slug ved at holde musen over menupunktet i dit WordPress-dashboard og se på URL'en i din browsers statuslinje. Det er typisk den del af URL'en efter wp-admin/.
At fjerne et menupunkt med PHP (som beskrevet her) fjerner det helt fra menuens struktur og gør det utilgængeligt via menuen. At skjule det med CSS (f.eks. display: none;) fjerner det kun visuelt; menupunktet er stadig til stede i DOM'en, og en klog bruger kan stadig finde det eller få adgang til det ved at manipulere URL'en. For sikkerhed og renlighed er PHP-metoden altid at foretrække.
Konklusion
At mestre kunsten at fjerne menuer i WordPress er en værdifuld færdighed for enhver, der ønsker et mere strømlinet, sikkert og brugervenligt WordPress-miljø. Uanset om du er en udvikler, der finjusterer et klient-dashboard, eller en indholdsskaber, der ønsker at rydde op i din navigationsmenu, giver WordPress dig de værktøjer, du har brug for.
Ved at anvende de teknikker, der er beskrevet i denne guide – fra de enkle træk-og-slip-metoder for front-end menuer til de mere avancerede PHP-funktioner for dashboard-undermenuer – kan du sikre, at dit WordPress-site er så effektivt og intuitivt som muligt. Husk altid at teste dine ændringer grundigt og overveje sikkerhedsaspekterne for at opretholde et robust og velfungerende WordPress-system.
Hvis du vil læse andre artikler, der ligner Fjernelse af Menupunkter i WordPress: En Komplet Guide, kan du besøge kategorien Teknologi.
