Block Header Behavior
Amplia o editor de blocos com comportamentos configuráveis para o cabeçalho do site (padrão, fixo, sobreposição) por meio de uma variação de core/group.
by Itamar Silva · github.com/silvaitamar/block-header-behavior · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/silvaitamar/block-header-behavior/archive/refs/heads/main.zipPlugin WordPress que adiciona uma variação de bloco ao core/group ("Site Header") com comportamentos de cabeçalho reutilizáveis no editor de blocos e em temas FSE (Full Site Editing).
Útil quando você não quer reinventar, a cada projeto, o mesmo padrão de grupo semântico (<header>), classes, sticky/overlay e estilos ao rolar a página.
Requisitos
- WordPress 6.5+
- PHP 7.4+
Instalação
- Copie a pasta
block-header-behaviorparawp-content/plugins/. - Ative Block Header Behavior em Plugins.
Uso (resumo)
- No editor de site ou no conteúdo, insira um Grupo e escolha a variação Site Header (ou equivalente no seu idioma).
- O grupo usa
tagName: headere a classesite-header. - No painel do bloco, defina o modo do cabeçalho:
- Default — fluxo normal.
- Sticky — fixa no topo ao rolar (
position: sticky). - Overlay — sobrepõe o conteúdo inicialmente; ao rolar, aplica fundo/sombra somente se você configurar no inspetor (variáveis CSS + classe
is-scrolled). Sem sombra definida, o default ébox-shadow: none— use isso quando o tema já temborder-bottome você não quer borda dupla.
- Nos modos sticky/overlay, use os controles nativos de Cor ("Fundo ao fixar") e Borda ("Sombra ao fixar") quando disponíveis. Deixe a sombra vazia se a borda inferior do tema for suficiente.
Mobile / breakpoints: o modo Overlay usa position: fixed em todos os viewports. Não há breakpoint embutido no plugin (decisão de produto). Temas que queiram header no fluxo só no mobile devem sobrescrever o CSS do handle bhb-block-header-behavior (ex. position: relative + zerar o padding-top de compensação do tema) — o tema iawp faz isso em ≤799px.
O CSS/JS de front-end só são enfileirados se o conteúdo analisado contiver um core/group com site-header na classe (singular, templates e partes em temas de blocos).
Hooks (desenvolvedores)
| Filtro | Descrição |
|---|---|
bhb_site_header_hidden_inspector_panels |
Painéis do inspetor a ocultar na variação Site Header (layout, position). |
bhb_header_modes |
Lista de slugs de modo permitidos (default, sticky, overlay). |
bhb_header_behavior_scan_sources |
Fontes extras de markup de blocos para detecção de carregamento de assets. |
Prefixos e handles usam o prefixo bhb_ / bhb- (constantes BHB_*).
Estrutura do código
block-header-behavior/
├── block-header-behavior.php # Bootstrap e constantes
├── includes/
│ ├── class-plugin.php # Singleton e i18n
│ ├── class-block.php # Atributos + variação
│ └── class-assets.php # Registro condicional de assets
├── assets/
│ ├── css/style.css
│ └── js/editor.js | frontend.js
└── languages/ # Traduções (.pot manual ou WP-CLI)
Boas práticas aplicadas
- Namespace PHP
BHB\BlockHeaderBehaviore função globalbhb_plugin(). ABSPATHem todos os arquivos PHP executáveis.load_plugin_textdomain()no hookinit(prioridade 0), conforme recomendado pelo WordPress.index.phpvazio nas pastas para evitar listagem de diretório.- Text domain único:
block-header-behavior. - Scripts com dependências explícitas; traduções do script de editor via
wp_set_script_translations. - Sem dados em
optionsno banco — não é obrigatóriouninstall.phppara limpeza.
Licença
GPL-2.0-or-later — alinhado ao ecossistema WordPress.
Changelog
Ver CHANGELOG.md.