The Ultimate Guide to
Development in WordPress
Jackson Mafra
Quem sou eu?
Oi! Eu sou o Jackson! Eu gosto de me descrever como desenvolvedor e líder
técnico, com um conhecimento muito forte em desenvolvimento web e
móvel. Desde 1998 desenvolvo websites e aplicações web, mas em 2009
mudei minha carreira para o desenvolvimento mobile.
JACKSON FERREIRA DE ANDRADE MAFRA
Agenda
PHP 7.3
PHP 7.3
Besides continuing to evolve the performance of PHP7, the PHP 7.3
release is also delivering on FFI (the Foreign Function Interface) to access
functions / variables / data structures from the C language, a
platform-independent manner for obtaining information on network
interfaces, an is_countable() call, WebP support within GD's image create
from string, updated SQLite support, improved PHP garbage collection
performance, and many other enhancements. PHP 7.3 is just shy of 10%
faster than PHP 7.2 in the popular PHPBench.
PHP 7.3 is 31% faster than PHP 7.0 or nearly 3x the speed of PHP5.
PHP 7.3
Profiling
X
Benchmarking
São diferentes
WordPress 5#novaVersao
A partir de 06 de
dezembro de 2018
WordPress 5.0
Se você ignorou todas as outras atualizações este ano, agora é a hora de
dar uma olhada e esta é a maior atualização para 2018.
O WordPress está reformulando completamente como os usuários e
desenvolvedores usam o CMS com seu novo editor Gutenberg. Agora é
tudo sobre blocos.
Também temos um novo tema Twenty Nineteen, que é o padrão em
novas instalações.
WordPress 5.0
Se você ignorou todas as outras atualizações este ano, agora é a hora de
dar uma olhada e esta é a maior atualização para 2018.
O WordPress está reformulando completamente como os usuários e
desenvolvedores usam o CMS com seu novo editor Gutenberg. Agora é
tudo sobre blocos.
Também temos um novo tema Twenty Nineteen, que é o padrão em
novas instalações.
Roadmap
a cada 3-4 mesesLançar uma nova
versão
a partir de 2007
Testar não é
opcional
#wordpres5
Se você não fizer os testes, as
coisas podem facilmente parar
de funcionar.
Gutenberg, o novo
editor do WordPress#changelog
#bigOne
O tema WordPress
Twenty Nineteen#changelog
#bigOne
Estrutura
WordpPress
AdminFront-end
PluginsTemas
Posts
Pages
Taxonomias
Organização
Ambiente
WordpPress
ProductionStaging
Containers
Virtual
Machines
Ambientes
A integração contínua procura minimizar o trabalho necessário para
manter um código de alta qualidade.
A maneira como isso é feito é automatizar o maior número possível de
processos.
Na verdade, um cenário ideal de integração contínua não possui
processos manuais.
Integração ContinuaWordpPress
Integração ContinuaWordpPress
Sistema de controle de versão
Suíte de testes automatizada
Ferramentas de qualidade de código
Integração ContinuaWordpPress
WP-CLI
Integração ContinuaWordpPress
O scaffold do WP-CLI é capaz de configurar um fluxo de trabalho inicial
de integração contínua para você. Ele pode fazer isso não apenas para
configurar testes para um plugin, mas também para configurar testes
para um tema.
Integração ContinuaWordpPress
PSR
#aboutTheCode
PHP-FIG
As PSR (do inglês PHP Standards Recommendation) são especificações
de projetos propostos pelo PHP-FIG (PHP Framework Interop Group),
um grupo composto por representantes de expressivos projetos em
PHP.
Esses padrões tem como objetivo facilitar a reutilização de código entre
os diversos projetos que implementem determinado padrão.
PSRWordpPress
PSRs para implementações de autoload (PSR-0 e PSR-4), sugestões de
estilos de código, como posição de chaves, indentação (Usar tabulações
ou espaços?) (PSR-1 e PSR-2).
PSRWordpPress
O PHP Framework Interoperability Group é um grupo formado por
membros com poder de voto e que representam frameworks PHP e
membros não votantes que podem participar
PHP FIGWordpPress
Como não há desenvolvedores do WordPress participando do PHP-FIG,
os padrões de codificação seguem uma mentalidade diferente daquela
do PSR.
PEAR Coding StandardWordpPress
Use Tabs para Recuos
Espaços em branco em instruções condicionais e chamadas de função
...
PEAR Coding StandardWordpPress
Diferentes tipos
de arquivos no
WordPress
WordPress Core Files - Estes controlam como o WordPress funciona,
não editado, mas interessante e possivelmente útil para ler ou estudar.
CoreWordpPress
Arquivos de tema do WordPress - controlam como os temas
funcionam e exibem o conteúdo.
Quando você estiver criando ou personalizando um tema filho, você
definitivamente editará esses arquivos.
CoreWordpPress
Arquivos de Plugin WordPress - Estes são usados na criação de plugins.
Se você estiver escrevendo seu próprio plugin ou estendendo outro
plugin, você editará esses arquivos, mas geralmente não editará
diretamente o código de outro plugin.
CoreWordpPress
Arquivos de Inclusão - Arquivos PHP pequenos incluídos em arquivos
maiores aparecem nos arquivos Core, Theme e Plugin.
CoreWordpPress
Temas
Template tags são funções especiais que nos permitem obter facilmente
informações e conteúdo a partir do WordPress.
Temas - Template TagsWordpPress
get_header()
get_footer()
get_sidebar()
get_template_part()
wp_login_form()
bloginfo()
the_title()
get_the_title()
the_content()
the_author()
the_category()
the_tags()
comment_author()
the_post_thumbnail()
the_permalink()
edit_post_link()
site_url()
wp_nav_menu()
Temas - Template TagsWordpPress
Tags condicionais são funções do WordPress que retornam verdadeiro
quando certas condições são atendidas.
Temas - Template TagsWordpPress
is_front_page()
is_home()
is_admin()
is_single()
is_single( 'slug' )
is_single( [ 'slug-1', 'slug-2',
'slug-3' ] )
is_singular()
get_post_type()
has_excerpt()
TemasWordpPress
is_page()
is_page( 'slug' )
is_page( [ 'slug-1', 'slug-2', 'slug-3' ] )
is_page_template( 'custom.php' )
comments_open()
is_category()
is_tag()
is_archive()
in_the_loop()
Starter Theme
#temas
#theFirstStep
Um Tema Starter inclui arquivos e funções úteis para criar temas a partir
do zero.
Você costuma editar temas iniciais diretamente, sem usar temas filhos.
Temas - Starter ThemeWordpPress
Um tema filho permite que você substitua outro tema (tema pai) sem
fazer alterações diretas que são perdidas durante as atualizações.
Temas - Child ThemeWordpPress
style.css
functions.php
index.php
Headers
Footers
Sidebars
Adicionando Áreas de Widget no WordPress
singular.php
single.php
Custom Templates
Temas - HierarquiaWordpPress
Complementar
#plugins
#theFirstStep
Plugins WordPress são complementos que agregam ou modificam
funcionalidades em um site WordPress.
Estas ferramentas oferecem funções para que cada usuário possa
personalizar seu website WP atendendo as necessidades do projeto.
PluginsWordpPress
Exemplo: O WordPress não oferece uma ferramenta nativa que faça
análise de SEO. Para sanar essa necessidade é preciso instalar um plugin
como o Yoast SEO, está implementação supre certos focos estratégicos
do marketing digital dos conteúdos postados.
PluginsWordpPress
Não reinvente a
roda
#plugins
#sejaConciente
Os ganchos (Hooks) permitem que você adicione código personalizado
ao software existente.
Dois tipos de ganchos existem no WordPress:
Ganchos de ação (Action Hooks) permitem que você execute seu
próprio código quando certos eventos ocorrem no ciclo de execução do
WordPress.
Ganchos de filtro (Filter Hooks) permitem modificar como o conteúdo
é exibido em uma página ou salvo no banco de dados.
Temas / Plugins - HooksWordpPress
● API de configurações
● Opções avançadas de wp-config
● Entendendo e Personalizando o Loop
● Escalabilidade e ajuste de desempenho
● Operações de banco de dados, consultas e erros
● Estrutura de Conteúdo e Hierarquia para Websites maiores
● Redirecionamentos e .htaccess
● Soluções Avançadas de Spam
● Segurança, SSL e Hardening
● Soluções OpenID e OAuth
● Regras claras para lidar com conteúdo duplicado
● Cache e IPv6
ReferênciasWordpPress
Benchmarking and PHPBench
https://www.slideshare.net/dantleech/benchmarking-and-phpbench
PHP 7.3 Performance Benchmarks Are Looking Good Days Ahead Of Its Release
https://developers.slashdot.org/story/18/11/24/2352226/php-73-performance-benchmarks-are-l
ooking-good-days-ahead-of-its-release
PHP 7 ChangeLog
http://php.net/ChangeLog-7.php#7.3.0
PHP 7.3.0 Released
http://news.php.net/php.internals/103558
Roadmap
https://wordpress.org/about/roadmap/
ReferênciasWordpPress
WordPress 5.0
https://br.wordpress.org/2018/12/06/wordpress-5-0-bebo/
Bebo Valdes
https://en.wikipedia.org/wiki/Bebo_Vald%C3%A9s
O Que Há de Novo no WordPress 5.0 – Olá Gutenberg!
https://kinsta.com/pt/blog/wordpress-5-0/
Matthew Mullenweg
https://ma.tt/
VM - Vagrant - SCOTCH BOX
https://box.scotch.io/
ReferênciasWordpPress
Docker
https://hub.docker.com/_/wordpress/
https://docs.docker.com/compose/wordpress/#build-the-project
Continuous Integration for WordPress
https://medium.com/@joshcummingsdesign/continuous-integration-for-wordpress-595f4f38
2f42
Grumphp
https://github.com/phpro/grumphp
GETTING STARTED WITH CONTINUOUS INTEGRATION AND WORDPRESS
https://carlalexander.ca/continuous-integration-wordpress/
ReferênciasWordpPress
WP-CLI
https://wp-cli.org/
WordPress and PHP 7.3
https://make.wordpress.org/core/2018/10/15/wordpress-and-php-7-3/
Gutenberg
https://wordpress.org/gutenberg/handbook/
ReferênciasWordpPress
PHP Coding Standards
https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/
PHP-FIG
https://www.php-fig.org/
Pear Coding Standards
http://pear.php.net/manual/en/standards.php
Theme Frameworks
https://codex.wordpress.org/Theme_Frameworks
ReferênciasWordpPress
Usando Plugins
https://codex.wordpress.org/pt-br:Usando_Plugins
Escrevendo um Plugin
https://codex.wordpress.org/pt-br:Escrevendo_um_Plugin
Recursos do Plugin
https://codex.wordpress.org/Plugin_Resources
Plugin API
https://codex.wordpress.org/Plugin_API
Blindando o WordPress
https://codex.wordpress.org/pt-br:Blindando_o_WordPress
ReferênciasWordpPress
Actions
https://codex.wordpress.org/Glossary#Action
Filtros
https://codex.wordpress.org/Glossary#Filter
https://codex.wordpress.org/Plugin_API/Filter_Reference
Difference between Benchmarking and Profiling
https://stackoverflow.com/questions/34801622/difference-between-benchmarking-and-profili
ng
ReferênciasWordpPress
Obrigado

The Ultimate Guide to Development in WordPress