Slik setter du opp WordPress-dashboardet for kunder
Åpning av wp-admin på en fersk installasjon er som å gå inn i et cockpit der halvparten av knappene utløser katapultsetet. For utviklere er dette rot. For klienter er det angst.
En profesjonell WordPress-oppsett handler ikke bare om temaet; det handler om backend-opplevelsen. Her er hvordan jeg konfigurerer dashboardet for hver høytbetalende klient.
1. Hva finnes i menyen i WordPress-dashboardet
1.1 Standardwidgets på dashboardets startside
Når du først logger inn på WordPress (dinside.no/wp-admin), blir du møtt av Dashboard. Dette er ditt kommandosenter, men det er ofte rotete med widgets du aldri vil bruke.
Standard Dashboard-widgets:
- Velkomstpanel: Raske lenker for å komme i gang
- På et øyeblikk: Innlegg og sideantall, temainformasjon
- Aktivitet: Nylig publiserte innlegg og nylige kommentarer
- Raskt utkast: Rask måte å opprette utkast på
- WordPress-arrangementer og nyheter: Kommende WordCamps og nyheter
- Nettstedhelsestatus: Sikkerhets- og ytelsesvarsler
1.2 Hva hvert menypunkt i admin-sidefeltet brukes til
Venstre sidefelt er din hovednavigasjonsmeny. Å forstå hver seksjon er avgjørende:
Innlegg: Dynamisk innhold med datoer, kategorier og tagger. Bruk for: nyheter, artikler, oppdateringer, blogginnlegg.
Media: Ditt filbibliotek. Bilder, PDF-er, videoer, lydfiler. WordPress organiserer etter opplastingsdato som standard.
Sider: Statisk, hierarkisk innhold. Bruk for: Om oss, Kontakt, Tjenester, Personvernregler.
Kommentarer: Administrer alle nettstedskommentarer. Moderering, sjekking av spam, svar.
Utseende: Temaer, tilpasning, menyer, widgets, temaredigering (i klassiske temaer).
Tillegg: Installer, aktiver, deaktiver og konfigurer tillegg.
Brukere: Administrer brukerkontoer, roller og profiler.
Verktøy: Import/eksport, nettstedhelse, eksport av personlige data.
Innstillinger: Kjerne WordPress-konfigurasjon. Generelt, skriving, lesing, diskusjon, media, permalinks.
1.3 Hva er forskjellen på innlegg og sider
Slutt å forklare “kronologisk vs statisk”. Det forvirrer folk. Bruk denne analogien:
- Sider er ditt Hus. (Hjem, Om oss, Kontakt). De flytter sjelden.
- Innlegg er din Avis. (Nyheter, Artikler, Oppdateringer). En ny kommer ut hver uke.
Tekniske forskjeller:
| Funksjon | Innlegg | Sider |
|---|---|---|
| Datobasert | Ja | Nei |
| Kategorier | Ja | Nei |
| Tagger | Ja | Nei |
| Forfatter | Ja | Valgfritt |
| RSS-feed | Inkludert | Ekskludert |
| Hierarkisk | Nei | Ja (foreldre/barn) |
| Malvalg | Begrenset | Omfattende |
2. Slik bruker du skjermalternativer i WordPress
Den mest kraftfulle knappen i WordPress er skjult i øvre høyre hjørne: Skjermalternativer.
2.1 Skjule kolonner i innleggslisten
Før du overleverer et nettsted, gå til Innlegg -> Alle innlegg og fjern merket for:
- Kommentarer (hvis deaktivert globalt)
- Tagger (hvis du bare bruker kategorier)
- Forfatter (hvis det er en enkeltforfatterblogg)
Dette reduserer kognitiv belastning. Din klient trenger ikke å se kolonner de aldri vil bruke.
2.2 Skjermalternativer i innleggsredigereren
I innleggsredigereren avslører Skjermalternativer:
- Kategorier
- Tagger
- Utvalgt bilde
- Utdrag
- Trackbacks
- Egne felt
- Diskusjon
- Slug
- Forfatter
Profftips: Aktiver “Egne felt” for avansert innholdsadministrasjon. Dette låser opp muligheten til å legge til metadata i innlegg.
2.3 Skjermalternativer i sideredigereren
Ligner på innlegg, men inkluderer:
- Sideattributter: Foreldreside, malvalg, rekkefølge
- Utvalgt bilde
- Egne felt
- Diskusjon
- Slug
- Forfatter
3. Tilpasse WordPress-dashboardet og fjerne widgets
3.1 Fjerne standardwidgets fra dashboardet
Som standard er hoveddashboardet (/wp-admin/index.php) en gravplass over ubrukelige widgets: “WordPress-arrangementer og nyheter”, “Raskt utkast”, “Velkomst”.
Ikke bare minimer dem. Fjern dem via kode. Legg dette til din functions.php:
function wppoland_clean_dashboard() {
remove_meta_box('dashboard_primary', 'dashboard', 'side'); // WordPress-arrangementer/nyheter
remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); // Raskt utkast
remove_meta_box('dashboard_activity', 'dashboard', 'normal'); // Nylig aktivitet
remove_meta_box('welcome_panel', 'dashboard', 'normal'); // Velkomstpanel
}
add_action('wp_dashboard_setup', 'wppoland_clean_dashboard');3.2 Legge til egendefinerte dashboard-widgets
Erstatt standard widgets med nyttig klientinformasjon:
function wppoland_add_custom_dashboard_widget() {
wp_add_dashboard_widget(
'wppoland_client_widget',
'Velkommen til ditt nettsted',
'wppoland_client_widget_content'
);
}
add_action('wp_dashboard_setup', 'wppoland_add_custom_dashboard_widget');
function wppoland_client_widget_content() {
echo '<p>Velkommen! Trenger du hjelp? Kontakt support på [email protected]</p>';
echo '<p>Dokumentasjon: <a href="https://docs.example.com">Se guider</a></p>';
}3.3 Legge til eget fargeskjema i admin
WordPress inkluderer flere admin-fargeskjemaer. Brukere kan velge preferanse i Profil-innstillinger:
- Standard
- Lys
- Moderne
- Blå
- Kaffe
- Ektoplasma
- Midnatt
- Hav
- Soloppgang
Egendefinert fargeskjema via kode:
function wppoland_custom_admin_colors() {
wp_admin_css_color(
'wppoland',
'WPPoland Brand',
get_stylesheet_directory_uri() . '/admin-colors.css',
['#1e1e1e', '#ff6b6b', '#4ecdc4', '#ffe66d']
);
}
add_action('admin_init', 'wppoland_custom_admin_colors');4. Skjule adminmenyen etter brukerrolle
Forskjellige brukerroller ser forskjellige dashboard-seksjoner. Å forstå dette er avgjørende for klientnettsteder.
4.1 Hvilke adminmenyer hver brukerrolle ser
Administrator: Full tilgang til alle menyelementer Redaktør: Innlegg, Media, Sider, Kommentarer, Profil Forfatter: Innlegg, Media, Kommentarer (egne), Profil Bidragsyter: Innlegg (legg til/rediger egne, men ikke publiser), Profil Abonnent: Kun profil
4.2 Skjule adminmenyer for ikke-administratorer
Hvis din klient ikke skal røre “Verktøy” eller “Innstillinger,” skjul dem. Selv om du kan bruke tillegg som Admin Menu Editor, er et enkelt utdrag tryggere og lettere:
add_action('admin_menu', function() {
if (!current_user_can('manage_options')) {
remove_menu_page('tools.php');
remove_menu_page('options-general.php');
}
});4.3 Skjule spesifikke undermenyelementer
function wppoland_hide_submenu_items() {
if (!current_user_can('manage_options')) {
remove_submenu_page('themes.php', 'themes.php'); // Temaval
remove_submenu_page('themes.php', 'customize.php'); // Tilpasser
remove_submenu_page('plugins.php', 'plugin-editor.php'); // Tilleggsredigering
}
}
add_action('admin_menu', 'wppoland_hide_submenu_items', 999);5. Fjerne og legge til metaboxer i WordPress
5.1 Hva er metaboxer i WordPress
Metaboxer er innholdsboksene i innlegg/sideredigering:
- Publiser: Lagre, forhåndsvis, planlegg, synlighet
- Format: Innleggsformatvalg
- Kategorier: Taksonomitildeling
- Tagger: Tagghåndtering
- Utvalgt bilde: Innleggminiatyr
- Utdrag: Manuell utdraginntasting
5.2 Slik flytter du metaboxer
Brukere kan dra og slippe metaboxer for å tilpasse arbeidsflyten. WordPress husker disse posisjonene per bruker.
5.3 Fjerne metaboxer med kode
function wppoland_remove_post_metaboxes() {
// Fjern for alle innleggstyper
remove_meta_box('postcustom', 'post', 'normal'); // Egne felt
remove_meta_box('trackbacksdiv', 'post', 'normal'); // Trackbacks
remove_meta_box('commentstatusdiv', 'post', 'normal'); // Diskusjon
remove_meta_box('commentsdiv', 'post', 'normal'); // Kommentarer
remove_meta_box('slugdiv', 'post', 'normal'); // Slug
remove_meta_box('authordiv', 'post', 'normal'); // Forfatter
}
add_action('admin_menu', 'wppoland_remove_post_metaboxes');5.4 Legge til egne metaboxer
function wppoland_add_custom_metabox() {
add_meta_box(
'wppoland_custom_metabox',
'Tilleggsinformasjon',
'wppoland_render_custom_metabox',
'post',
'side',
'default'
);
}
add_action('add_meta_boxes', 'wppoland_add_custom_metabox');
function wppoland_render_custom_metabox($post) {
wp_nonce_field('wppoland_save_metabox', 'wppoland_metabox_nonce');
$value = get_post_meta($post->ID, '_wppoland_custom_field', true);
echo '<label for="wppoland_custom_field">Egendefinert felt:</label>';
echo '<input type="text" id="wppoland_custom_field" name="wppoland_custom_field" value="' . esc_attr($value) . '" style="width:100%">';
}6. Endre rekkefølge og navn i WordPress-adminmenyen
6.1 Omorganisere menyelementer
function wppoland_custom_menu_order($menu_order) {
if (!$menu_order) return true;
return [
'index.php', // Dashboard
'edit.php', // Innlegg
'edit.php?post_type=page', // Sider
'upload.php', // Media
'separator1',
'themes.php', // Utseende
'plugins.php', // Tillegg
'users.php', // Brukere
'tools.php', // Verktøy
'options-general.php', // Innstillinger
];
}
add_filter('custom_menu_order', '__return_true');
add_filter('menu_order', 'wppoland_custom_menu_order');6.2 Gi nytt navn til menyelementer
function wppoland_rename_menus() {
global $menu;
$menu[5][0] = 'Artikler'; // Gi nytt navn til Innlegg til Artikler
$menu[10][0] = 'Filer'; // Gi nytt navn til Media til Filer
}
add_action('admin_menu', 'wppoland_rename_menus', 999);6.3 Legge til egne menyelementer i admin
function wppoland_add_custom_menu() {
add_menu_page(
'Klientdokumentasjon',
'Dokumentasjon',
'read',
'client-docs',
'wppoland_render_docs_page',
'dashicons-book',
3
);
}
add_action('admin_menu', 'wppoland_add_custom_menu');
function wppoland_render_docs_page() {
echo '<div class="wrap"><h1>Klientdokumentasjon</h1>';
echo '<p>Velkommen til din nettstedsdokumentasjon...</p></div>';
}6.4 Egendefinerte ikoner for menyelementer
WordPress inkluderer Dashicons som standard. Bruk dem eller egne SVG-er:
// Bruke Dashicons
add_menu_page('Egendefinert side', 'Egendefinert', 'read', 'custom-page', 'callback', 'dashicons-star-filled');
// Bruke egendefinert SVG
function wppoland_custom_admin_icon() {
echo '<style>
#toplevel_page_custom-page .wp-menu-image:before {
content: "";
background-image: url("' . get_stylesheet_directory_uri() . '/icon.svg");
background-size: contain;
background-repeat: no-repeat;
width: 20px;
height: 20px;
display: inline-block;
}
</style>';
}
add_action('admin_head', 'wppoland_custom_admin_icon');7. Begrense WordPress-dashboardet for kunder
7.1 Skjule tema- og utvidelsesredigereren for kunder
function wppoland_client_proof_dashboard() {
if (!current_user_can('manage_options')) {
// Fjern Utseende > Rediger (Temaredigering)
remove_action('admin_menu', '_add_themes_utility_last', 101);
// Fjern Tillegg > Rediger
remove_action('admin_menu', '_add_pluginutility_last', 101);
// Skjul oppdateringsvarsler
remove_action('admin_notices', 'update_nag', 3);
}
}
add_action('admin_init', 'wppoland_client_proof_dashboard');7.2 Egendefinert innloggingsomdirigering
Omdiriger klienter til en spesifikk side etter innlogging:
function wppoland_login_redirect($redirect_to, $request, $user) {
if (isset($user->roles) && is_array($user->roles)) {
if (in_array('editor', $user->roles)) {
return admin_url('edit.php');
} elseif (in_array('author', $user->roles)) {
return admin_url('post-new.php');
}
}
return $redirect_to;
}
add_filter('login_redirect', 'wppoland_login_redirect', 10, 3);7.3 Endre teksten i admin-bunnteksten
Erstatt “Takk for at du skaper med WordPress” med din branding:
function wppoland_custom_admin_footer() {
echo '<span id="footer-thankyou">Bygget av WPPoland. Trenger du hjelp? Kontakt oss på [email protected]</span>';
}
add_filter('admin_footer_text', 'wppoland_custom_admin_footer');7.4 Fjerne WordPress-versjonen fra admin-bunnteksten
function wppoland_remove_wp_version() {
remove_filter('update_footer', 'core_update_footer');
}
add_action('admin_menu', 'wppoland_remove_wp_version');8. Deaktivere eller tilpasse Gutenberg-blokkredigering
8.1 Utseende-menyen i blokktemaer (FSE)
I blokktemaer endres Utseende-menyen betydelig:
- Rediger: Full site editing-grensesnitt
- Mønstre: Gjenbrukbare blokkmønstre
- Maler: Nettstedsmaler
- Maldeler: Header, footer, sidefelt-deler
8.2 Deaktivere blokkredigering for spesifikke innleggstyper
function wppoland_disable_gutenberg($use_block_editor, $post_type) {
if ($post_type === 'page') {
return false; // Bruk klassisk redigering for sider
}
return $use_block_editor;
}
add_filter('use_block_editor_for_post_type', 'wppoland_disable_gutenberg', 10, 2);8.3 Laste egne skript i blokkredigereren
function wppoland_enqueue_block_assets() {
wp_enqueue_script(
'wppoland-block-editor',
get_stylesheet_directory_uri() . '/block-editor.js',
['wp-blocks', 'wp-dom-ready', 'wp-edit-post'],
filemtime(get_stylesheet_directory() . '/block-editor.js')
);
}
add_action('enqueue_block_editor_assets', 'wppoland_enqueue_block_assets');9. Slik fikser du vanlige problemer i WordPress-dashboardet
9.1 Hvit skjerm i admin
- Deaktiver alle tillegg via FTP (gi nytt navn til
/plugins-mappe) - Bytt til standardtema
- Sjekk PHP-feillogger
- Øk minnegrensen
9.2 Hvorfor mangler menyelementer i admin
- Sjekk brukerrollerettigheter
- Tilleggskonflikter
- Egendefinert kode som fjerner menyer
9.3 Hvorfor er WordPress-dashboardet tregt
- Objekt-caching-problemer
- For mange dashboard-widgets
- Tilleggsoverhead
- Databaseoppblåsthet
9.4 Hvorfor lagres ikke skjermalternativer
- Nettlesercookies
- Brukermeta-korrupsjon
- Tilleggskonflikter
10. FAQ
S: Hvordan tilbakestiller jeg dashboardet til standard? S: Tøm brukermeta i databasen eller bruk et tillegg som “Adminimize” for å tilbakestille innstillinger.
S: Kan jeg lage helt egendefinerte admin-sider?
S: Hvordan skjuler jeg admin-linjen for visse brukere?
S: Kan klienter ødelegge nettstedet fra dashboardet?
S: Hva er forskjellen mellom Redaktør og Forfatter?
S: Hvordan legger jeg til hjelpefaner på admin-sider?
S: Kan jeg tilpasse dashboardet per bruker?
10. Sikre WordPress-admin med 2FA og IP-begrensning
Å sikre WordPress admin-dashboardet er avgjørende for å beskytte hele nettstedet ditt. I denne delen vil vi utforske omfattende sikkerhetstiltak som går utover grunnleggende herding.
10.1 Tofaktorautentisering (2FA) for wp-admin
Tofaktorautentisering legger til et ekstra sikkerhetslag utover brukernavn og passord. Det finnes flere metoder for å implementere 2FA i WordPress:
Bruke TOTP (Time-based One-Time Password):
// Legg til TOTP-verifisering ved innlogging
function wppoland_add_2fa_to_login($user, $password) {
if (!wp_check_password($password, $user->user_pass, $user->ID)) {
return false;
}
// Sjekk om bruker har 2FA aktivert
$totp_secret = get_user_meta($user->ID, '_wppoland_2fa_secret', true);
if (!$totp_secret) {
return $user; // 2FA ikke aktivert for denne brukeren
}
// Verifiser TOTP-kode (implementering krever bibliotek som OTPHP)
return $user;
}2FA og sikkerhet: Vi anbefaler ikke å installere sikkerhetsprogramtillegg. Bygg sikkerhet på servernivå (sterke passord, begrensede innloggingsforsøk via server/fail2ban, sikkerhetskopier). For 2FA kan du bruke hostingens innebygde funksjoner eller en minimal løsning hvis nødvendig.
10.2 Begrense admin-tilgang etter IP-adresse
Å begrense admin-tilgang til spesifikke IP-adresser forhindrer uautorisert tilgang fra ukjente steder:
// Begrens admin-tilgang etter IP
function wppoland_restrict_admin_by_ip() {
if (!is_user_logged_in() || is_admin()) {
$allowed_ips = ['192.168.1.100', '203.0.113.50'];
$user_ip = $_SERVER['REMOTE_ADDR'];
if (!in_array($user_ip, $allowed_ips) && !current_user_can('administrator')) {
wp_die(
__('Tilgang nektet. IP-adressen din er ikke autorisert.', 'wppoland'),
__('Tilgang nektet', 'wppoland'),
['response' => 403]
);
}
}
}
add_action('init', 'wppoland_restrict_admin_by_ip');Bruke .htaccess for IP-restriksjoner:
# Begrens wp-admin etter IP
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from 192.168.1.100
Allow from 203.0.113.50
</Files>
<Files "admin-ajax.php">
Order Allow,Deny
Allow from all
</Files>10.3 Endre innloggings-URL i WordPress
Å endre standard innloggings-URL forhindrer automatiserte brute force-angrep:
// Endre innloggings-URL fra wp-login.php til egendefinert URL
function wppoland_custom_login_slug() {
global $wp_rewrite;
$wp_rewrite->rules['custom-login'] = 'wp-login.php?custom=1';
$wp_rewrite->flush_rules();
}
add_action('init', 'wppoland_custom_login_slug');
function wppoland_redirect_custom_login() {
if (isset($_GET['custom']) && $_GET['custom'] == '1') {
// Tillat tilgang til egendefinert innlogging
return;
}
wp_redirect(home_url());
exit;
}
add_action('login_init', 'wppoland_redirect_custom_login');Alternativt kan du bruke etablerte tillegg som WPS Hide Login eller All In One WP Security for denne funksjonaliteten.
10.4 Sikkerhetsheadere for wp-admin
Sikkerhetsheadere beskytter mot ulike angrepsvektorer:
function wppoland_admin_security_headers() {
if (!current_user_can('manage_options')) {
header('X-Content-Type-Options: nosniff');
header('X-Frame-Options: SAMEORIGIN');
header('X-XSS-Protection: 1; mode=block');
header('Referrer-Policy: strict-origin-when-cross-origin');
header('Content-Security-Policy: default-src \'self\'; script-src \'self\' \'unsafe-inline\' \'unsafe-eval\'; style-src \'self\' \'unsafe-inline\'');
}
}
add_action('admin_init', 'wppoland_admin_security_headers');11. Gjøre et tregt WordPress-dashboard raskere
Et tregt admin-dashboard påvirker produktiviteten og brukeropplevelsen. Disse optimaliseringene vil øke hastigheten på WordPress-backend betydelig.
11.1 Utsette lasting av tunge dashboard-widgets
Dashboard-widgets som krever eksterne API-kall eller database-spørringer kan bremse admin-lastingen:
// Utsette lasting av tunge dashboard-widgets
function wppoland_optimize_dashboard_widgets() {
global $wp_meta_boxes;
// Fjern WordPress-arrangementer og nyheter (gjør eksternt API-kall)
remove_meta_box('dashboard_primary', 'dashboard', 'side');
// Fjern Raskt utkast (unødvendig for de fleste klienter)
remove_meta_box('dashboard_quick_press', 'dashboard', 'side');
// Bare last Aktivitet-widget for brukere som trenger det
if (!current_user_can('edit_posts')) {
remove_meta_box('dashboard_activity', 'dashboard', 'normal');
}
}
add_action('wp_dashboard_setup', 'wppoland_optimize_dashboard_widgets');
// Lat-lasting av dashboard-widgets
function wppoland_lazy_load_dashboard_widgets() {
echo '<script>
jQuery(document).ready(function($) {
$(".dashboard-widget").each(function() {
var widget = $(this);
if (widget.find(".loading").length) {
widget.addClass("loading");
widget.find(".inside").html("<p>Laster...</p>");
}
});
});
</script>';
}
add_action('admin_footer', 'wppoland_lazy_load_dashboard_widgets');11.2 Redusere database-spørringer i admin
Minimer database-spørringer ved å bufre brukerdata og redusere unødvendige metadataforespørsler:
// Optimalisere brukerkapabilitetsjekker
function wppoland_optimize_capability_checks($user_id) {
// Bufre kapabiliteter for bedre ytelse
wp_cache_add('user_caps_' . $user_id, get_user_meta($user_id, 'wp_capabilities', true), 'users', 3600);
}
// Redusere innleggsmeta-spørringer
function wppoland_optimize_post_queries($query) {
if (is_admin() && $query->is_main_query()) {
// Bare hent nødvendige felt
$query->set('fields', 'ids');
// Optimalisere paginering
$query->set('no_found_rows', true);
// Bruk cache for innleggstellinger
$query->set('cache_results', true);
}
}
add_action('pre_get_posts', 'wppoland_optimize_post_queries');11.3 Objektcaching i WordPress-admin
Implementering av objektecaching reduserer databasebelastning:
// Konfigurer objektecaching for admin
define('WP_CACHE', true);
// Memcached konfigurasjonseksempel
$memcached_servers = array(
'default' => array(
'127.0.0.1:11211'
)
);
// Bruk Redis objektecaching
if (defined('WP_REDIS_HOST')) {
wp_cache_add_global_groups(['users', 'userlogins', 'user_meta', 'site-transient']);
wp_cache_add_non_persistent_groups(['comment', 'counts']);
}11.4 Fjerne unødvendige admin-skript og stiler
Last skript bare når det er nødvendig:
// Fjerne unødvendige admin-skript
function wppoland_optimize_admin_scripts() {
// Fjern emoji-stiler (ikke nødvendig hvis emojis deaktivert)
remove_action('admin_print_styles', 'print_emoji_styles');
// Fjern dashboard-widget-skript
wp_dequeue_script('dashboard');
// Bare last media-skript når det er nødvendig
if (!did_action('wp_enqueue_media')) {
wp_deregister_script('media-editor');
wp_deregister_script('media-views');
}
}
add_action('admin_enqueue_scripts', 'wppoland_optimize_admin_scripts', 999);12. Slik gjør du WordPress-admin tilgjengelig
Å skape et tilgjengelig admin-grensesnitt sikrer at alle brukere kan administrere nettstedet effektivt, uavhengig av fysiske evner.
12.1 Tastaturnavigasjon i WordPress-admin
Sikre at alle dashboard-funksjoner er tilgjengelige via tastatur:
// Legg til hopplenker for tilgjengelighet
function wppoland_admin_skip_links() {
global $wp_admin_bar;
echo '<a href="#wpbody" class="screen-reader-text skip-link">' .
__('Hopp til hovedinnhold', 'wppoland') . '</a>';
echo '<a href="#adminmenuwrap" class="screen-reader-text skip-link">' .
__('Hopp til navigasjonsmeny', 'wppoland') . '</a>';
}
add_action('admin_head', 'wppoland_admin_skip_links', 5);
// Legg til fokusstiler for tilgjengelighet
function wppoland_admin_focus_styles() {
echo '<style>
.skip-link {
position: absolute;
top: -40px;
left: 0;
background: #2271b1;
color: #fff;
padding: 8px 16px;
z-index: 100;
text-decoration: none;
transition: top 0.3s;
}
.skip-link:focus {
top: 0;
}
:focus {
outline: 2px solid #2271b1;
outline-offset: 2px;
}
:focus:not(:focus-visible) {
outline: none;
}
:focus-visible {
outline-offset: 2px;
}
</style>';
}
add_action('admin_head', 'wppoland_admin_focus_styles');12.2 Skjermleserstøtte i WordPress-admin
Forbedre skjermleserkompatibilitet:
// Legge til ARIA-etiketter til menyelementer
function wppoland_admin_menu_aria_labels($menu) {
global $menu, $submenu;
// Sikre at menyelementer har beskrivende etiketter
foreach ($menu as $key => $item) {
if (isset($item[0])) {
$menu[$key][0] = wp_strip_all_tags($item[0]);
}
}
return $menu;
}
add_filter('add_menu_classes', 'wppoland_admin_menu_aria_labels');
// Legge til beskrivende titler til sider
function wppoland_admin_title($admin_title, $title) {
return sprintf('%s | %s', esc_html(get_bloginfo('name')), $title);
}
add_filter('admin_title', 'wppoland_admin_title', 10, 2);12.3 Høykontrastmodus i WordPress-admin
Sikre at dashboardet fungerer med høykontrastmoduser:
// Støtte for tvungne fargermodus
function wppoland_forced_colors_support() {
echo '<style>
@media (forced-colors: active) {
.button, .button-primary, .button-secondary {
border: 2px solid ButtonText;
}
.wp-core-ui .button-primary {
background-color: Mark;
}
.metabox-holder .postbox {
border: 1px solid CanvasText;
}
}
/* Reduserte bevegelsespreferanser */
@media (prefers-reduced-motion: reduce) {
* {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}
</style>';
}
add_action('admin_head', 'wppoland_forced_colors_support');13. Nettverksadmin i WordPress multisite
WordPress Flernettsted introduserer ekstra kompleksitet til dashboard-navigasjon og -administrasjon.
13.1 Forskjellen på nettverksadmin og nettstedsadmin
I Flernettsted-installasjoner ser brukere med nettverksadministratorkapasiteter en annen menystruktur:
Nettverksadmin-menyelementer:
- Dashboard (Nettverk): Nettverksomfattende statistikk
- Nettsteder: Administrer alle nettsteder i nettverket
- Brukere: Nettverksomfattende brukeradministrasjon
- Temaer: Nettverksomfattende temaaktivering
- Tillegg: Nettverksomfattende tilleggsadministrasjon
- Innstillinger: Nettverkskonfigurasjonsalternativer
- Oppdateringer: Nettverksomfattende oppdateringsadministrasjon
Nettstedspesifikk admin: Individuelle nettstedsadministratorer ser bare sitt nettsteds dashboard med standard menyelementer.
13.2 Legge til menypunkter i nettverksadmin for multisite
// Legg til egendefinert nettverksadmin-menyelement
function wppoland_multisite_network_menu() {
add_menu_page(
__('Nettverksanalyse', 'wppoland'),
__('Analyse', 'wppoland'),
'manage_network',
'network-analytics',
'wppoland_network_analytics_page',
'dashicons-chart-bar',
3
);
}
add_action('network_admin_menu', 'wppoland_multisite_network_menu');
// Tilpasse nettstedsadmin-meny for superbrukere
function wppoland_multisite_site_menu($menu) {
if (is_super_admin()) {
// Legg til nettverksadmin-lenke for superbrukere
$menu[] = [
__('Nettverksadmin', 'wppoland'),
'manage_network',
network_admin_url(),
'',
'menu-top',
'menu-network',
'dashicons-admin-network'
];
}
return $menu;
}
add_filter('add_menu_classes', 'wppoland_multisite_site_menu');13.3 Nettstedspesifikke dashboard-widgets i multisite
Opprett nettstedspesifikke dashboard-widgets i Flernettsted:
// Legg til nettstedspesifikk dashboard-widget
function wppoland_multisite_site_widget() {
$current_site = get_current_site();
wp_add_dashboard_widget(
'site_info_widget',
sprintf(__('%s Nettstedsinformasjon', 'wppoland'), esc_html($current_site->site_name)),
'wppoland_site_widget_content'
);
}
add_action('wp_dashboard_setup', 'wppoland_multisite_site_widget');
function wppoland_site_widget_content() {
$blog_details = get_blog_details(get_current_blog_id());
echo '<table class="widefat" striped>';
echo '<tr><th>' . __('Nettsteds-URL', 'wppoland') . '</th><td>' . esc_url($blog_details->domain) . '</td></tr>';
echo '<tr><th>' . __('Registrert', 'wppoland') . '</th><td>' . esc_html($blog_details->registered) . '</td></tr>';
echo '<tr><th>' . __('Sist oppdatert', 'wppoland') . '</th><td>' . esc_html($blog_details->last_updated) . '</td></tr>';
echo '</table>';
}14. Organisere og dokumentere admintilpasninger
Når du utfører betydelige dashboard-tilpasningsprosjekter, følg disse beste praksisene for å sikre vedlikeholdbarhet og klienttilfredshet.
14.1 Hvor koden for dashboardtilpasninger bør ligge
Hold alle dashboard-tilpasninger i en separat fil eller egendefinert tillegg:
// I wp-content/mu-plugins/wppoland-dashboard-customizer.php
<?php
/**
* Tilleggsnavn: WPPoland Dashboard Customizer
* Beskrivelse: Omfattende dashboard-tilpasning for klientnettsteder
* Versjon: 1.0.0
* Forfatter: WPPoland
* Tekstdomen: wppoland
*/
// Forhindre direkte tilgang
if (!defined('ABSPATH')) exit;
// Definer konstanter
define('WPPoland_DASHBOARD_VERSION', '1.0.0');
define('WPPoland_DASHBOARD_PATH', plugin_dir_path(__FILE__));
define('WPPoland_DASHBOARD_URL', plugin_dir_url(__FILE__));
// Inkluder tilpassingsmoduler
require_once WPPoland_DASHBOARD_PATH . 'includes/cleanup.php';
require_once WPPoland_DASHBOARD_PATH . 'includes/customization.php';
require_once WPPoland_DASHBOARD_PATH . 'includes/security.php';
require_once WPPoland_DASHBOARD_PATH . 'includes/performance.php';14.2 Versjonering av dashboardtilpasninger
Spor alle dashboard-endelser og gi oppdateringsmekanismer:
// Dashboard-tilpasning versjonssporing
function wppoland_get_dashboard_version() {
return get_option('wppoland_dashboard_version', '1.0.0');
}
function wppoland_update_dashboard_settings() {
$current_version = wppoland_get_dashboard_version();
$plugin_version = WPPoland_DASHBOARD_VERSION;
if (version_compare($current_version, $plugin_version, '<')) {
// Kjør oppdateringsmigrasjoner
wppoland_run_migrations($current_version, $plugin_version);
// Oppdater versjon i database
update_option('wppoland_dashboard_version', $plugin_version);
}
}
add_action('plugins_loaded', 'wppoland_update_dashboard_settings');14.3 Legge til en hjelpefane for kunder i dashboardet
Gi omfattende dokumentasjon innenfor dashboardet:
// Legg til hjelp-fane i dashboard
function wppoland_add_dashboard_help_tab() {
$screen = get_current_screen();
$screen->add_help_tab([
'id' => 'wppoland_dashboard_help',
'title' => __('Dashboard-guide', 'wppoland'),
'content' => '<h3>' . __('Hvordan bruke ditt Dashboard', 'wppoland') . '</h3>' .
'<p>' . __('Denne guiden vil hjelpe deg med å navigere og administrere WordPress-nettstedet ditt effektivt.', 'wppoland') . '</p>' .
'<h4>' . __('Raske lenker', 'wppoland') . '</h4>' .
'<ul>' .
'<li><a href="edit.php">' . __('Administrer innlegg', 'wppoland') . '</a></li>' .
'<li><a href="edit.php?post_type=page">' . __('Administrer sider', 'wppoland') . '</a></li>' .
'<li><a href="upload.php">' . __('Mediabibliotek', 'wppoland') . '</a></li>' .
'</ul>'
]);
}
add_action('admin_head', 'wppoland_add_dashboard_help_tab');15. FAQ
S: Hvordan tilbakestiller jeg dashboardet til standard? S: Tøm brukermeta i databasen eller bruk et tillegg som “Adminimize” for å tilbakestille innstillinger.
S: Kan jeg lage helt egendefinerte admin-sider?
S: Hvordan skjuler jeg admin-linjen for visse brukere?
S: Kan klienter ødelegge nettstedet fra dashboardet?
S: Hva er forskjellen mellom Redaktør og Forfatter?
S: Hvordan gjenoppretter jeg utilsiktet slettet innhold?
S: Hvorfor laster dashboardet mitt sakte?
S: Kan jeg endre dashboard-logoen for min byrå?
S: Hvordan hindrer jeg klienter i å installere sine egne tillegg?
S: Hva er den beste måten å trene klienter på å bruke WordPress?
S: Hvordan legger jeg til hjelpefaner på admin-sider?
S: Kan jeg tilpasse dashboardet per bruker?
S: Hvordan aktiverer jeg automatiske tilleggsoppdateringer for klienter?
S: Hva er forskjellen mellom hard og myk sletting i WordPress?
S: Kan jeg eksportere dashboard-innstillinger for å bruke på andre nettsteder?
S: Hvordan håndterer jeg dashboard-problemer ved bytte av tema?
Oppsummering
Et generisk dashboard sier “Jeg installerte et tema.” Et kuratert dashboard sier “Jeg bygde en plattform for din bedrift.” Invester tid i å rydde det opp.
Viktige punkter:
- Bruk Skjermalternativer for å rydde opp
- Tilpass etter brukerrolle
- Fjern farlige menyelementer for klienter
- Legg til nyttige egendefinerte widgets
- Oppretthold konsistent branding
- Dokumenter tilpasninger for teamet ditt
- Implementer sikkerhetsherding
- Optimaliser ytelse
- Vurder tilgjengelighet
- Planlegg for flernettsted hvis nødvendig
Å mestre WordPress dashboardet transformerer det fra et forvirrende grensesnitt til et kraftig, klientvennlig innholdsstyringssystem.
Oppdatert: januar 29, 2026 Guide-versjon: 2.0
Roller og rettigheter er den delen av dashbordet som oftest står urørt helt fra installasjonen. Vil du ha tilgangene satt opp etter måten redaksjonen faktisk jobber på, se WordPress-utvikling og oppsett av roller.







