SlideShare a Scribd company logo
1 of 26
Download to read offline
Sweet Child O’ Themes
Breno Alves
Plugin developer na Proxio Inc.
Co-organizador da WP Rio.
Contribui para alguns projetos e
comunidades open-source.
Atualmente trabalha somente
com projetos em WordPress.
O que é um child theme?
Um tema que herda funcionalidades e estilos de um
outro tema (parent theme).
É a forma mais recomendada para fazer modificações
em qualquer tema WordPress.
O que dá pra fazer com ele?
Em geral, você pode adicionar, remover ou
modificar qualquer funcionalidade de um
parent theme.
■ Menus
■ Sidebars
■ Widgets
■ Templates
■ Scripts
■ Shortcodes
■ Metaboxes
■ Hooks
Pequenas agências e freelancers
Muitas vezes o processo de desenvolvimento é
complexo. Por que não buscar uma alternativa viável
e de baixo custo para seus projetos?
■ Redução de custos
■ Menor tempo de desenvolvimento
■ Flexibilidade
■ Fidelização de pequenos clientes
Como eu faço um
child theme?
/*
Theme Name: Child Theme
Author: Breno Alves
Description: Um novo child theme de exemplo.
Version: 1.0.0
Template: parent-theme
*/
style.css
<?php
// Adiciona durante o enfileiramento dos scripts
add_action( 'wp_enqueue_scripts', 'import_scripts' );
// Reimporta scripts do tema pai
function import_scripts() {
wp_enqueue_style( 'parent-style' );
}
?>
Readicione CSS necessários
Ao trabalhar com child themes, você deverá sempre
utilizar funções com referência ao stylesheet do tema,
pois as funções de template ficam associadas ao parent
theme.
E apenas um cuidado!
get_template_directory != get_stylesheet_directory
Códigos úteis
<?php
// Adiciona a action após carregar o tema
add_action( 'after_setup_theme', 'remove_menus' );
// Desregistra os menus
function remove_menus() {
unregister_nav_menu( 'nome-do-menu' );
}
?>
Menus
<?php
// Adiciona a action após a inicialização dos widgets
add_action( 'widgets_init', 'remove_widgets' );
// Remove o widget de calendário padrão do WordPress
function remove_widgets() {
unregister_widget( 'WP_Widget_Calendar' );
}
?>
Widgets
<?php
// Adiciona a action após o enfileiramento dos scripts
add_action( 'wp_enqueue_scripts', 'remove_scripts' );
// Remove um script
function remove_scripts() {
wp_dequeue_style( 'custom-style' );
}
?>
Scripts
Exemplos
Twenty Fifteen
Nifl
Storefront
Boutique
“Ah legal, mas tem
problema de
performance, né?”
Nem tudo são flores, mas...
Usar um child theme pode trazer algumas
desvantagens, mas tudo dependerá do contexto do
projeto em que você estiver.
Para projetos que não exigem tanto de desempenho
a diferença é muito pequena (quase nenhuma) pois
o WordPress cuida de todo o carregamento de
forma inteligente.
Em geral, o bom desempenho de um child theme está
ligado à qualidade de desenvolvimento do seu parent
theme.
Verificar se o parent theme oferece o suporte
adequado e segue às melhores práticas é essencial
para que o seu child theme não tenha problemas.
E dá pra fazer um tema
“Neto”?
Vocês e essas sobrinhagens...
Claro que dá!
Mas para isso você não vai usar um tema e sim um
plugin, onde você poderá adicionar novos scripts,
folhas de estilos e redirecionar templates.
Obrigado!
@brenoalvs

More Related Content

What's hot

Estilizando temas de WordPress
Estilizando temas de WordPressEstilizando temas de WordPress
Estilizando temas de WordPressAnyssa Ferreira
 
WordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerce
WordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerceWordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerce
WordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerceVinícius Lourenço
 
Rails Girls - Minimum viable product
Rails Girls - Minimum viable productRails Girls - Minimum viable product
Rails Girls - Minimum viable productBruno Henrique - Garu
 
Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"Stefan Horochovec
 
Ferramentas gratuitas para criar apresentações online
Ferramentas gratuitas para criar apresentações onlineFerramentas gratuitas para criar apresentações online
Ferramentas gratuitas para criar apresentações onlineMiguel Brandão
 
React - Biblioteca Javascript para criação de UI
React - Biblioteca Javascript para criação de UIReact - Biblioteca Javascript para criação de UI
React - Biblioteca Javascript para criação de UICleiton Francisco
 
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...Sergio Costa
 
Utilizando Polymer em aplicações móveis
Utilizando Polymer em aplicações móveisUtilizando Polymer em aplicações móveis
Utilizando Polymer em aplicações móveisStefan Horochovec
 
Novidades asp.net mvc 4
Novidades asp.net mvc 4Novidades asp.net mvc 4
Novidades asp.net mvc 4Cleber Dantas
 
AMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasAMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasDan Vitoriano
 
Clean code: programando com WordPress de forma profissional
Clean code: programando com WordPress de forma profissionalClean code: programando com WordPress de forma profissional
Clean code: programando com WordPress de forma profissionalLeo Baiano
 
TDC SP 2015 - Criando Web Apps Real Time com AngularJs e Firebase
TDC SP 2015 - Criando Web Apps Real Time com AngularJs e FirebaseTDC SP 2015 - Criando Web Apps Real Time com AngularJs e Firebase
TDC SP 2015 - Criando Web Apps Real Time com AngularJs e FirebaseAndre Baltieri
 
Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)Sérgio Vilar
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Coretdc-globalcode
 
Code Igniter - O Framework php mais fácil e ágil
Code Igniter - O Framework php mais fácil e ágilCode Igniter - O Framework php mais fácil e ágil
Code Igniter - O Framework php mais fácil e ágilRafael Pinheiro
 
CodeIgniter 4 - Introdução
CodeIgniter 4 - IntroduçãoCodeIgniter 4 - Introdução
CodeIgniter 4 - IntroduçãoRafael Pinheiro
 

What's hot (20)

Estilizando temas de WordPress
Estilizando temas de WordPressEstilizando temas de WordPress
Estilizando temas de WordPress
 
WordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerce
WordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerceWordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerce
WordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerce
 
Rails Girls - Minimum viable product
Rails Girls - Minimum viable productRails Girls - Minimum viable product
Rails Girls - Minimum viable product
 
Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"
 
Ferramentas gratuitas para criar apresentações online
Ferramentas gratuitas para criar apresentações onlineFerramentas gratuitas para criar apresentações online
Ferramentas gratuitas para criar apresentações online
 
React - Biblioteca Javascript para criação de UI
React - Biblioteca Javascript para criação de UIReact - Biblioteca Javascript para criação de UI
React - Biblioteca Javascript para criação de UI
 
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...
WordCampBH 2015 - O mínimo essencial para o bom desempenho do seu projeto em ...
 
Utilizando Polymer em aplicações móveis
Utilizando Polymer em aplicações móveisUtilizando Polymer em aplicações móveis
Utilizando Polymer em aplicações móveis
 
Novidades asp.net mvc 4
Novidades asp.net mvc 4Novidades asp.net mvc 4
Novidades asp.net mvc 4
 
Node.js e Express
Node.js e ExpressNode.js e Express
Node.js e Express
 
AMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasAMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps Modernas
 
Clean code: programando com WordPress de forma profissional
Clean code: programando com WordPress de forma profissionalClean code: programando com WordPress de forma profissional
Clean code: programando com WordPress de forma profissional
 
TDC SP 2015 - Criando Web Apps Real Time com AngularJs e Firebase
TDC SP 2015 - Criando Web Apps Real Time com AngularJs e FirebaseTDC SP 2015 - Criando Web Apps Real Time com AngularJs e Firebase
TDC SP 2015 - Criando Web Apps Real Time com AngularJs e Firebase
 
Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)Estrutura de um Front-End eficiente (para iniciantes)
Estrutura de um Front-End eficiente (para iniciantes)
 
PWA
PWAPWA
PWA
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
 
Code Igniter - O Framework php mais fácil e ágil
Code Igniter - O Framework php mais fácil e ágilCode Igniter - O Framework php mais fácil e ágil
Code Igniter - O Framework php mais fácil e ágil
 
Blazor #SnetTalks3
Blazor  #SnetTalks3Blazor  #SnetTalks3
Blazor #SnetTalks3
 
CodeIgniter 4 - Introdução
CodeIgniter 4 - IntroduçãoCodeIgniter 4 - Introdução
CodeIgniter 4 - Introdução
 
Aula 12 Word
Aula 12 WordAula 12 Word
Aula 12 Word
 

Viewers also liked

Comunidade. Abuse e use dela com moderação e inteligência.
Comunidade. Abuse e use dela com moderação e inteligência.Comunidade. Abuse e use dela com moderação e inteligência.
Comunidade. Abuse e use dela com moderação e inteligência.Beto Muniz
 
Fuja do ciclo vicioso do conteúdo sem valor
Fuja do ciclo vicioso do conteúdo sem valorFuja do ciclo vicioso do conteúdo sem valor
Fuja do ciclo vicioso do conteúdo sem valorNara Grilo
 
Wordpress search-elasticsearch
Wordpress search-elasticsearchWordpress search-elasticsearch
Wordpress search-elasticsearchTaylor Lovett
 
Como enviar newsletters no WordPress
Como enviar newsletters no WordPressComo enviar newsletters no WordPress
Como enviar newsletters no WordPressRafael Funchal
 
WordPress para Gestores de Conteúdo - WordCamp BH 2015
WordPress para Gestores de Conteúdo - WordCamp BH 2015WordPress para Gestores de Conteúdo - WordCamp BH 2015
WordPress para Gestores de Conteúdo - WordCamp BH 2015Nauweb
 
Architecting an Highly Available and Scalable WordPress Site in AWS
Architecting an Highly Available and Scalable WordPress Site in AWS Architecting an Highly Available and Scalable WordPress Site in AWS
Architecting an Highly Available and Scalable WordPress Site in AWS Harish Ganesan
 
Image manipulation in WordPress 3.5
Image manipulation in WordPress 3.5Image manipulation in WordPress 3.5
Image manipulation in WordPress 3.5Marko Heijnen
 
Core plugins - WordCamp UK 2010
Core plugins  - WordCamp UK 2010Core plugins  - WordCamp UK 2010
Core plugins - WordCamp UK 2010Peter Westwood
 
Wordcamp 2010 I'm A Scientist Get me Out of Here - Mike Little
Wordcamp 2010 I'm A Scientist Get me Out of Here - Mike LittleWordcamp 2010 I'm A Scientist Get me Out of Here - Mike Little
Wordcamp 2010 I'm A Scientist Get me Out of Here - Mike LittleMike Little
 
WordPress APIs
WordPress APIsWordPress APIs
WordPress APIsmdawaffe
 
WordPress as a Service
WordPress as a ServiceWordPress as a Service
WordPress as a ServiceAndrew Bauer
 
Empowering Your Clients and Be an Advocate for Yourself
Empowering Your Clients and Be an Advocate for YourselfEmpowering Your Clients and Be an Advocate for Yourself
Empowering Your Clients and Be an Advocate for YourselfLinchpin
 
Never fear, the customizer is here!
Never fear, the customizer is here!Never fear, the customizer is here!
Never fear, the customizer is here!Cameron Jones
 
Debugging WordPress Core and Plugins!
Debugging WordPress Core and Plugins!Debugging WordPress Core and Plugins!
Debugging WordPress Core and Plugins!Bronson Quick
 
Create a newsletter in less than 17 minutes without writing a single word
Create a newsletter in less than 17 minutes without writing a single wordCreate a newsletter in less than 17 minutes without writing a single word
Create a newsletter in less than 17 minutes without writing a single wordNik Cree
 
Teresa Lane - Content Modeling - WordCamp St. Louis 2016
Teresa Lane - Content Modeling - WordCamp St. Louis 2016Teresa Lane - Content Modeling - WordCamp St. Louis 2016
Teresa Lane - Content Modeling - WordCamp St. Louis 2016Teresa Lane
 
Getting to Know Underscores
Getting to Know Underscores Getting to Know Underscores
Getting to Know Underscores Jason Yingling
 
Building a Simple Project Plan for WordPress Projects
Building a Simple Project Plan for WordPress ProjectsBuilding a Simple Project Plan for WordPress Projects
Building a Simple Project Plan for WordPress ProjectsLucas Lima
 
Organizing Your First Website Usability Test - WordCamp Boston 2016
Organizing Your First Website Usability Test - WordCamp Boston 2016Organizing Your First Website Usability Test - WordCamp Boston 2016
Organizing Your First Website Usability Test - WordCamp Boston 2016Anthony D. Paul
 

Viewers also liked (20)

Comunidade. Abuse e use dela com moderação e inteligência.
Comunidade. Abuse e use dela com moderação e inteligência.Comunidade. Abuse e use dela com moderação e inteligência.
Comunidade. Abuse e use dela com moderação e inteligência.
 
Fuja do ciclo vicioso do conteúdo sem valor
Fuja do ciclo vicioso do conteúdo sem valorFuja do ciclo vicioso do conteúdo sem valor
Fuja do ciclo vicioso do conteúdo sem valor
 
Teste A/B
Teste A/BTeste A/B
Teste A/B
 
Wordpress search-elasticsearch
Wordpress search-elasticsearchWordpress search-elasticsearch
Wordpress search-elasticsearch
 
Como enviar newsletters no WordPress
Como enviar newsletters no WordPressComo enviar newsletters no WordPress
Como enviar newsletters no WordPress
 
WordPress para Gestores de Conteúdo - WordCamp BH 2015
WordPress para Gestores de Conteúdo - WordCamp BH 2015WordPress para Gestores de Conteúdo - WordCamp BH 2015
WordPress para Gestores de Conteúdo - WordCamp BH 2015
 
Architecting an Highly Available and Scalable WordPress Site in AWS
Architecting an Highly Available and Scalable WordPress Site in AWS Architecting an Highly Available and Scalable WordPress Site in AWS
Architecting an Highly Available and Scalable WordPress Site in AWS
 
Image manipulation in WordPress 3.5
Image manipulation in WordPress 3.5Image manipulation in WordPress 3.5
Image manipulation in WordPress 3.5
 
Core plugins - WordCamp UK 2010
Core plugins  - WordCamp UK 2010Core plugins  - WordCamp UK 2010
Core plugins - WordCamp UK 2010
 
Wordcamp 2010 I'm A Scientist Get me Out of Here - Mike Little
Wordcamp 2010 I'm A Scientist Get me Out of Here - Mike LittleWordcamp 2010 I'm A Scientist Get me Out of Here - Mike Little
Wordcamp 2010 I'm A Scientist Get me Out of Here - Mike Little
 
WordPress APIs
WordPress APIsWordPress APIs
WordPress APIs
 
WordPress as a Service
WordPress as a ServiceWordPress as a Service
WordPress as a Service
 
Empowering Your Clients and Be an Advocate for Yourself
Empowering Your Clients and Be an Advocate for YourselfEmpowering Your Clients and Be an Advocate for Yourself
Empowering Your Clients and Be an Advocate for Yourself
 
Never fear, the customizer is here!
Never fear, the customizer is here!Never fear, the customizer is here!
Never fear, the customizer is here!
 
Debugging WordPress Core and Plugins!
Debugging WordPress Core and Plugins!Debugging WordPress Core and Plugins!
Debugging WordPress Core and Plugins!
 
Create a newsletter in less than 17 minutes without writing a single word
Create a newsletter in less than 17 minutes without writing a single wordCreate a newsletter in less than 17 minutes without writing a single word
Create a newsletter in less than 17 minutes without writing a single word
 
Teresa Lane - Content Modeling - WordCamp St. Louis 2016
Teresa Lane - Content Modeling - WordCamp St. Louis 2016Teresa Lane - Content Modeling - WordCamp St. Louis 2016
Teresa Lane - Content Modeling - WordCamp St. Louis 2016
 
Getting to Know Underscores
Getting to Know Underscores Getting to Know Underscores
Getting to Know Underscores
 
Building a Simple Project Plan for WordPress Projects
Building a Simple Project Plan for WordPress ProjectsBuilding a Simple Project Plan for WordPress Projects
Building a Simple Project Plan for WordPress Projects
 
Organizing Your First Website Usability Test - WordCamp Boston 2016
Organizing Your First Website Usability Test - WordCamp Boston 2016Organizing Your First Website Usability Test - WordCamp Boston 2016
Organizing Your First Website Usability Test - WordCamp Boston 2016
 

Similar to Sweet Child O' Themes

Boas práticas de django
Boas práticas de djangoBoas práticas de django
Boas práticas de djangoFilipe Ximenes
 
Como criar um plugin para WordPress
Como criar um plugin para WordPressComo criar um plugin para WordPress
Como criar um plugin para WordPressLeandrinho Vieira
 
Ebook - Processo de Otimização de Sites WordPress
Ebook - Processo de Otimização de Sites WordPressEbook - Processo de Otimização de Sites WordPress
Ebook - Processo de Otimização de Sites WordPressDaniel Paz
 
Desenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDesenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDaniel Paz
 
Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014Paulo Victor Gomes
 
SharePoint Deployment
SharePoint DeploymentSharePoint Deployment
SharePoint DeploymentAndré Vala
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
 
Zend Framework 1.11
Zend Framework 1.11Zend Framework 1.11
Zend Framework 1.11Cezar Souza
 
Evento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de FrontEvento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de FrontMichel Ribeiro
 
Jetpack, um Canivete Suíço no seu WordPress (WordCamp São Paulo 2014)​
Jetpack, um Canivete Suíço no seu WordPress (WordCamp São Paulo 2014)​Jetpack, um Canivete Suíço no seu WordPress (WordCamp São Paulo 2014)​
Jetpack, um Canivete Suíço no seu WordPress (WordCamp São Paulo 2014)​Valério Souza
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
Boas Práticas de programação WordPress
Boas Práticas de programação WordPressBoas Práticas de programação WordPress
Boas Práticas de programação WordPressThiago Mendes
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPMarcelo Andrade
 
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIDesenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIRudá Almeida
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
The Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressThe Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressJackson F. de A. Mafra
 

Similar to Sweet Child O' Themes (20)

Boas práticas de django
Boas práticas de djangoBoas práticas de django
Boas práticas de django
 
Como criar um plugin para WordPress
Como criar um plugin para WordPressComo criar um plugin para WordPress
Como criar um plugin para WordPress
 
Ebook - Processo de Otimização de Sites WordPress
Ebook - Processo de Otimização de Sites WordPressEbook - Processo de Otimização de Sites WordPress
Ebook - Processo de Otimização de Sites WordPress
 
Desenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDesenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi Builder
 
Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014
 
SharePoint Deployment
SharePoint DeploymentSharePoint Deployment
SharePoint Deployment
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Zend Framework 1.11
Zend Framework 1.11Zend Framework 1.11
Zend Framework 1.11
 
Evento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de FrontEvento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de Front
 
Jetpack, um Canivete Suíço no seu WordPress (WordCamp São Paulo 2014)​
Jetpack, um Canivete Suíço no seu WordPress (WordCamp São Paulo 2014)​Jetpack, um Canivete Suíço no seu WordPress (WordCamp São Paulo 2014)​
Jetpack, um Canivete Suíço no seu WordPress (WordCamp São Paulo 2014)​
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
Boas Práticas de programação WordPress
Boas Práticas de programação WordPressBoas Práticas de programação WordPress
Boas Práticas de programação WordPress
 
Tutorial codeigniter
Tutorial codeigniterTutorial codeigniter
Tutorial codeigniter
 
Introdução ao DotNetNuke
Introdução ao DotNetNukeIntrodução ao DotNetNuke
Introdução ao DotNetNuke
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHP
 
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIDesenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLI
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
The Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressThe Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPress
 
Python 06
Python 06Python 06
Python 06
 

Sweet Child O' Themes

  • 2. Breno Alves Plugin developer na Proxio Inc. Co-organizador da WP Rio. Contribui para alguns projetos e comunidades open-source. Atualmente trabalha somente com projetos em WordPress.
  • 3. O que é um child theme? Um tema que herda funcionalidades e estilos de um outro tema (parent theme). É a forma mais recomendada para fazer modificações em qualquer tema WordPress.
  • 4. O que dá pra fazer com ele? Em geral, você pode adicionar, remover ou modificar qualquer funcionalidade de um parent theme.
  • 5. ■ Menus ■ Sidebars ■ Widgets ■ Templates ■ Scripts ■ Shortcodes ■ Metaboxes ■ Hooks
  • 6. Pequenas agências e freelancers Muitas vezes o processo de desenvolvimento é complexo. Por que não buscar uma alternativa viável e de baixo custo para seus projetos?
  • 7. ■ Redução de custos ■ Menor tempo de desenvolvimento ■ Flexibilidade ■ Fidelização de pequenos clientes
  • 8. Como eu faço um child theme?
  • 9. /* Theme Name: Child Theme Author: Breno Alves Description: Um novo child theme de exemplo. Version: 1.0.0 Template: parent-theme */ style.css
  • 10. <?php // Adiciona durante o enfileiramento dos scripts add_action( 'wp_enqueue_scripts', 'import_scripts' ); // Reimporta scripts do tema pai function import_scripts() { wp_enqueue_style( 'parent-style' ); } ?> Readicione CSS necessários
  • 11. Ao trabalhar com child themes, você deverá sempre utilizar funções com referência ao stylesheet do tema, pois as funções de template ficam associadas ao parent theme. E apenas um cuidado! get_template_directory != get_stylesheet_directory
  • 13. <?php // Adiciona a action após carregar o tema add_action( 'after_setup_theme', 'remove_menus' ); // Desregistra os menus function remove_menus() { unregister_nav_menu( 'nome-do-menu' ); } ?> Menus
  • 14. <?php // Adiciona a action após a inicialização dos widgets add_action( 'widgets_init', 'remove_widgets' ); // Remove o widget de calendário padrão do WordPress function remove_widgets() { unregister_widget( 'WP_Widget_Calendar' ); } ?> Widgets
  • 15. <?php // Adiciona a action após o enfileiramento dos scripts add_action( 'wp_enqueue_scripts', 'remove_scripts' ); // Remove um script function remove_scripts() { wp_dequeue_style( 'custom-style' ); } ?> Scripts
  • 18. Nifl
  • 21. “Ah legal, mas tem problema de performance, né?”
  • 22. Nem tudo são flores, mas... Usar um child theme pode trazer algumas desvantagens, mas tudo dependerá do contexto do projeto em que você estiver. Para projetos que não exigem tanto de desempenho a diferença é muito pequena (quase nenhuma) pois o WordPress cuida de todo o carregamento de forma inteligente.
  • 23. Em geral, o bom desempenho de um child theme está ligado à qualidade de desenvolvimento do seu parent theme. Verificar se o parent theme oferece o suporte adequado e segue às melhores práticas é essencial para que o seu child theme não tenha problemas.
  • 24. E dá pra fazer um tema “Neto”?
  • 25. Vocês e essas sobrinhagens... Claro que dá! Mas para isso você não vai usar um tema e sim um plugin, onde você poderá adicionar novos scripts, folhas de estilos e redirecionar templates.