Filtro body_class — Adicionar classes ao

Time Full Services Time Full Services
Tipo Hooks de filtro
Nome do erro Filtro body_class — Adicionar classes ao
Severidade Informativo
Desde WordPress 2.8
Descrição Permite adicionar classes CSS customizadas à tag gerada pelo WordPress, facilitando a estilização contextual sem sobrescrever templates.

Causa

Estilizar páginas específicas via CSS exige identificadores no elemento body. Editar o template diretamente acopla o plugin ao tema.

Como resolver

Adicione suas classes ao array $classes e retorne-o. Nunca retorne apenas o array com suas classes — isso remove todas as classes padrão do WordPress.

PHP
<?php
add_filter('body_class', function (array $classes): array {
    // Classe para usuários logados
    if (is_user_logged_in()) {
        $classes[] = 'usuario-logado';

        $user = wp_get_current_user();
        foreach ($user->roles as $role) {
            $classes[] = 'role-' . sanitize_html_class($role);
        }
    }

    // Classe para página específica
    if (is_page('contato')) {
        $classes[] = 'pagina-contato';
    }

    // Remove classe gerada pelo WP que causa conflito
    $classes = array_diff($classes, ['page-template-default']);

    return array_unique($classes);
});

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →