Vil du style alle sider under /services/ annerledes? Lær hvordan du injiserer forelder-slugs i WordPress body_class()-funksjonen.
NB

Legge til forelder-side-slug i body-klasser (WordPress-snutt)

5.00 /5 - (31 votes )
Sist verifisert: 1. mai 2026
4min lesetid
Veiledning
500+ WP-prosjekter
Full-stack-utvikler

WordPress-temaer bruker body_class() for å legge til nyttige CSS-klasser i <body>-taggen. Som standard indikerer det imidlertid ikke tydelig om en side er et barn av en bestemt forelderseksjon.

Hvis du har en struktur som:

  • /services/
  • /services/web-design/
  • /services/seo/

Du vil kanskje style alle sider under “Services” med en blå bakgrunn. Standardklassene som page-id-123 er irriterende å vedlikeholde.

#Problemet: Begrenset CSS-målretting

WordPress sin standard body_class()-funksjon legger til klasser som:

  • page-id-123 (numerisk, vanskelig å huske)
  • page-template-default (generisk)
  • page (for bred)

Men den forteller deg ikke:

  • Hvilken seksjon siden tilhører
  • Sidehierarkiet (forelder/barn-forhold)
  • Sidesluggen (lesbar identifikator)

Dette gjør CSS-målretting vanskelig. Du ender opp med kode som:

/* Dårlig: Vanskelig å vedlikeholde */
.page-id-123,
.page-id-124,
.page-id-125 {
    background: blue;
}

Hver gang du legger til en ny side, må du oppdatere CSS-en din. Dette skalerer ikke.

#Løsningen: Legg til forelder-slugs i body-klasser

Ved å legge til forelder-side-slugs i body-klassen, kan du målrette hele seksjoner med en enkelt CSS-regel. Dette gjør stilarket ditt vedlikeholdbart og skalerbart.

#Den fullstendige snutten

Legg til denne forbedrede versjonen i din functions.php:

/**
 * Add page slugs and parent slugs to body classes
 * 
 * Adds:
 * - Current page slug
 * - Parent page slug (if exists)
 * - Grandparent page slug (if exists)
 * - All ancestor slugs
 * 
 * @param array $classes Existing body classes
 * @return array Modified classes array
 */
function wppoland_add_slug_body_class( $classes ) {
    global $post;
    
    if ( ! isset( $post ) || ! is_page() ) {
        return $classes;
    }
    
    // 1. Add current page slug
    $classes[] = 'page-slug-' . sanitize_html_class( $post->post_name );
    
    // 2. Add parent page slug (if exists)
    if ( $post->post_parent ) {
        $parent = get_post( $post->post_parent );
        if ( $parent ) {
            $classes[] = 'parent-' . sanitize_html_class( $parent->post_name );
            
            // 3. Add grandparent slug (if exists)
            if ( $parent->post_parent ) {
                $grandparent = get_post( $parent->post_parent );
                if ( $grandparent ) {
                    $classes[] = 'grandparent-' . sanitize_html_class( $grandparent->post_name );
                }
            }
            
            // 4. Add all ancestor slugs (recursive)
            $ancestors = get_post_ancestors( $post->ID );
            foreach ( $ancestors as $ancestor_id ) {
                $ancestor = get_post( $ancestor_id );
                if ( $ancestor ) {
                    $classes[] = 'ancestor-' . sanitize_html_class( $ancestor->post_name );
                }
            }
        }
    }
    
    // 5. Add template hierarchy classes
    $template = get_page_template_slug( $post->ID );
    if ( $template ) {
        $template_slug = str_replace( '.php', '', basename( $template ) );
        $classes[] = 'template-' . sanitize_html_class( $template_slug );
    }
    
    return $classes;
}
add_filter( 'body_class', 'wppoland_add_slug_body_class' );

#Resultat: Forbedrede body-klasser

Nå vil din <body>-tag inkludere:

<body class="page page-id-123 page-slug-web-design parent-services ancestor-services ...">

Klasser lagt til:

  • page-slug-web-design - Nåværende sideslug
  • parent-services - Direkte forelderslug
  • grandparent-company - Besteforelderslug (hvis den finnes)
  • ancestor-services - Alle aneslugs
  • template-custom - Malfilnavn (hvis tilpasset)

#Eksempler på bruk

#Eksempel 1: Style alle services-sider

/* Blå bakgrunn for ALLE services-sider */
body.parent-services {
    background-color: #eef;
}

/* Spesifikk styling for services-overskrift */
body.parent-services .site-header {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

#Eksempel 2: Ulike layouter per seksjon

/* Full bredde layout for dokumentasjon */
body.parent-documentation .content-area {
    max-width: 100%;
    padding: 0;
}

/* Sidebar layout for blogg */
body.parent-blog .content-area {
    max-width: 1200px;
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 2rem;
}

#Oppsummering

Å legge til forelder-side-slugs i body-klasser er en enkel, men kraftig teknikk som gjør CSS-målretting skalerbar og vedlikeholdbar. I stedet for å vedlikeholde lister over side-IDer, kan du målrette hele seksjoner med en enkelt klasse.

Fordeler:

  • ✅ Skalerbar: Fungerer automatisk for nye sider
  • ✅ Vedlikeholdbar: En CSS-regel for hele seksjoner
  • ✅ Semantisk: Lesbare klassenavn
  • ✅ Fleksibel: Fungerer med alle temaer

Utforsk våre profesjonell WordPress-utvikling for å ta prosjektet ditt videre.

Neste steg

Gjor artikkelen om til faktisk implementering

Denne blokken styrker intern lenking og sender leseren videre til de mest relevante tjenestene og innholdet.

Vil du fa dette implementert pa nettstedet ditt?

Hvis du vil gjore kunnskapen i artikkelen om til konkrete forbedringer, redesign eller en tydelig leveranseplan, kan jeg ta det videre.

Relevant klynge

Utforsk andre WordPress-tjenester og kunnskapsbase

Styrk virksomheten din med profesjonell teknisk støtte innen kjerneområdene i WordPress-økosystemet.

Hva er Legge til forelder-side-slug i body-klasser (WordPress-snutt)?
Legge til forelder-side-slug i body-klasser (WordPress-snutt) er et viktig aspekt ved administrasjon av WordPress-nettsider som bidrar til å forbedre nettstedets ytelse, sikkerhet og brukeropplevelse.
Hvordan fungerer Legge til forelder-side-slug i body-klasser (WordPress-snutt)?
Legge til forelder-side-slug i body-klasser (WordPress-snutt) innebærer å konfigurere ulike innstillinger og implementere beste praksis for å optimalisere din WordPress-nettside.
Hvorfor er Legge til forelder-side-slug i body-klasser (WordPress-snutt) viktig for WordPress?
Legge til forelder-side-slug i body-klasser (WordPress-snutt) er avgjørende fordi det direkte påvirker nettstedets søkemotorrangering, lastehastighet og generelle suksess.

Trenger du FAQ tilpasset bransje og marked? Vi lager en versjon som støtter dine forretningsmål.

Ta kontakt

Relaterte artikler

Finn ut når en ombygging av nettside er nødvendig. 7 målbare tekniske og forretningsmessige signaler om at nettstedet ditt trenger modernisering i 2026.
wordpress

Når bør du bygge om nettsiden din? 7 tegn på at det er tid for modernisering

Finn ut når en ombygging av nettside er nødvendig. 7 målbare tekniske og forretningsmessige signaler om at nettstedet ditt trenger modernisering i 2026.

Lær når en gjenoppbygging av nettsted er nødvendig. 7 målbare tekniske og forretningsmessige signaler om at nettsiden din trenger modernisering i 2026.
wordpress

Når bør du gjenoppbygge nettsiden din? 7 tegn på at det er på tide

Lær når en gjenoppbygging av nettsted er nødvendig. 7 målbare tekniske og forretningsmessige signaler om at nettsiden din trenger modernisering i 2026.

WordPress 7.0 med AI Client mot Astro 6 etter Cloudflare-oppkjøpet. Sammenligning av hastighet, kostnader, SEO og sikkerhet. Mine tanker etter 20 år som WP-utvikler - når du bør migrere og når du bør bli.
wordpress

WordPress 7.0 vs Astro 6 etter Cloudflare-oppkjøpet - hvem vinner i 2026?

WordPress 7.0 med AI Client mot Astro 6 etter Cloudflare-oppkjøpet. Sammenligning av hastighet, kostnader, SEO og sikkerhet. Mine tanker etter 20 år som WP-utvikler - når du bør migrere og når du bør bli.