Plugin automatic-ai-posts (v2.0.0) - Pipeline completo: coleta de feeds RSS/Atom, filtro por IA, reescrita, categoria, imagem de capa e agendamento - Página de configuração com teste real do provedor de IA - Editor: botão para refazer imagem de capa e metadados, textos em PT-BR - Ajuda com botão Pix (copia-e-cola + QR) e sem nota de avaliação - Cache-busting por mtime nos assets do admin Tema gustavoo-portfolio - Marca do cabeçalho reduzida a "Gustavo" - Suporte a título próprio da marca Setup (docker/wp-init.sh, compose.yaml) - Plugins de terceiros (Post Views Counter, Rank Math, Site Kit) instalados do WordPress.org em vez de versionados - Falha explícita ao final se algum plugin obrigatório não instalar - WPCLI_UID/WPCLI_GID configuráveis Seeder do tema - Links permanentes "Dia e nome" e avatar "Iniciais" aplicados apenas em instalação nova, com regravação do .htaccess
Gustavo Portfolio — Tema WordPress
Tema WordPress clássico para o portfólio e blog de Gustavo Oliveira — gustavoo.me
Screenshot
Sobre
Tema WordPress clássico desenvolvido para o portfólio pessoal e blog de Gustavo Oliveira, desenvolvedor Full Stack Sênior. O tema foi construído com foco em performance, acessibilidade e experiência do usuário, utilizando as melhores práticas do WordPress moderno.
Características
- Tema Clássico — Template hierarchy tradicional do WordPress
- Theme.json — Configuração completa de estilos via theme.json (cores, tipografia, espaçamento, bordas)
- Blocos Nativos — Suporte completo a blocos do Gutenberg
- Fluent Forms + FluentCRM — Integração nativa para formulários e newsletter
- Portfólio de Projetos — CPT customizado para exibição de projetos
- Newsletter Widget — Widget personalizado para FluentCRM
- SEO Ready — Estrutura semântica e meta tags otimizadas
- Performance — Assets otimizados, fontes variáveis (Inter Variable), lazy loading nativo
Stack
- WordPress 6.5+
- PHP 8.1+
- Theme.json v3
- Inter Variable Font (local, self-hosted)
- Fluent Forms + FluentCRM (integração via plugin complementar)
- Docker Compose para desenvolvimento local
Estrutura do Tema
gustavoo-portfolio/
├── assets/
│ └── fonts/ # Inter Variable Font (woff2)
├── inc/
│ ├── customizer.php # Personalizador do tema
│ ├── defaults.php # Configurações padrão (theme.json fallback)
│ ├── enqueue.php # Assets e estilos
│ ├── forms.php # Integração Fluent Forms
│ ├── setup.php # Configuração do tema
│ ├── template-tags.php # Template tags auxiliares
│ └── widgets.php # Widget Newsletter (FluentCRM)
├── template-parts/ # Partes de template reutilizáveis
├── 404.php
├── archive.php
├── category.php
├── comments.php
├── footer.php
├── front-page.php # Página inicial customizada
├── functions.php # Bootstrap do tema
├── header.php
├── home.php
├── index.php
├── page.php
├── search.php
├── searchform.php
├── sidebar.php
├── single.php
├── screenshot.png # Screenshot do tema (theme.png)
├── style.css # Stylesheet principal (metadados do tema)
└── theme.json # Configuração global de estilos
Plugin Complementar
O tema funciona em conjunto com o plugin Gustavo Portfolio Core (wp-content/plugins/gustavoo-portfolio-core), que provê:
- CPT Projetos — Post type customizado para portfólio
- Configurações Globais — Opções de hero, sobre, projetos, blog, contato, newsletter e redes sociais
- Seeder — Criação automática de páginas, formulários Fluent Forms e feeds FluentCRM
- Widget Newsletter — Widget para exibir formulário de newsletter no sidebar
Desenvolvimento Local
Pré-requisitos
O tema e plugin dependem dos seguintes plugins WordPress (instalados e ativados):
- Fluent Forms — Formulários de contato e newsletter
- FluentCRM — Automação de marketing e newsletter
# Criar o arquivo de variáveis de ambiente (obrigatório)
cp .env.example .env
# Edite o .env com suas credenciais (senhas do banco, porta, etc.)
# Subir ambiente Docker (instala e configura tudo automaticamente)
docker compose up -d
# Acompanhar a instalação
docker compose logs -f wpcli
# Acessar WordPress
# http://localhost:8080
# Usuário: admin | Senha: admin (definido no .env)
# Instalar dependências (plugins obrigatórios)
# 1. Acesse http://localhost:8080/wp-admin
# 2. Plugins → Adicionar novo → Busque e instale:
# - Fluent Forms
# - FluentCRM
# 3. Ative ambos os plugins
# Logs
docker compose logs -f wordpress
O que acontece a cada docker compose up
O serviço wpcli roda o docker/wp-init.sh e detecta o estado do banco:
Primeira execução (banco vazio) — instalação
wp core installcom URL/título/admin definidos no.env- Pacote de idioma
pt_BR - Instala do WordPress.org os plugins de
WP_EXTRA_PLUGINS(Post Views Counter, Rank Math SEO, Site Kit) — só se faltarem - Ativa todos os plugins de
wp-content/plugins/e remove os que o WordPress traz (akismet,hello) - Redis: constantes no
wp-config.php, plugin, drop-inobject-cache.phpe verificação de conexão - Configura o Post Views Counter: conta posts e páginas, posição Manual only
- Ativa o tema
gustavoo-portfolioe remove os temas padrão - Executa o seeder do plugin (páginas, formulários, feeds, permalinks, avatar)
Rank Math SEO e Site Kit são apenas instalados e ativados: o wizard e a conexão com o Google são feitos manualmente no painel.
Execuções seguintes (site já instalado) — atualização
- Nada é reinstalado e nenhum dado é apagado
- Atualiza o core e os plugins ativos que tiverem versão nova
- Ativa plugins novos adicionados à pasta
wp-content/plugins/ - Reaplica só o que estiver faltando (idioma, Redis, tema, seeder idempotente)
A configuração do Post Views Counter roda uma única vez, na instalação. Se você mudar a posição no painel, ela não é sobrescrita nos próximos boots.
O seeder também aplica, apenas enquanto os valores ainda forem os de instalação nova:
| Ajuste | Valor aplicado |
|---|---|
| Links permanentes | Dia e nome — /ano/mês/dia/slug/ |
| Avatar padrão | Iniciais |
Depois de criar permalinks, o .htaccess do Apache é regravado na hora — sem isso as URLs novas dariam 404. Se você já tiver escolhido outro permalink ou avatar, sua escolha é mantida.
Tudo o que é do usuário fica em volumes, não no container:
| Volume | Conteúdo |
|---|---|
db_data |
banco MariaDB — posts, páginas, usuários, opções, formulários |
wordpress_data |
core, uploads, plugins e temas instalados |
redis_data |
cache de objetos |
docker compose down (sem -v) preserva tudo; só down -v recria do zero. Para pular atualizações numa reinicialização, use WP_SKIP_UPDATES=1 no .env.
Deploy
O tema está preparado para deploy em ambientes WordPress padrão (VPS, shared hosting, WP Engine, Kinsta, etc.).
- Faça o build dos assets se necessário
- Faça deploy da pasta
wp-content/themes/gustavoo-portfolio/ - Ative o tema no painel WordPress
- Ative o plugin Gustavo Portfolio Core
- Execute o seeder (Configurações → Portfólio → "Executar Seeder") para criar páginas e formulários padrão
Licença
GNU General Public License v2 ou posterior — mesmo licença do WordPress.
Desenvolvido por Gustavo Oliveira — Desenvolvedor Full Stack Sênior
