O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Quem sou eu?
É sério galera!
Leo Baiano
#WebDev para pagar as
contas
Músico quando estou bêbado
Poeta por vocação
Romântico de nascença
FAZEDOR DE SLID...
O que são temas e plugins WordPress?
Tema
O tema WordPress é uma coleção de arquivos que trabalham juntos
para produzir um...
Criar VS CustomizarDesenvolver
VS
Customizar
Coisas que eu gostaria de
saber antes de trabalhar com
Joomla!
… isso mesmo que você ouviu, Joomla!
Esqueça o Joomla!
Joomla! é legalzinho, mas você já ouviu falar de WordPress?
Coisas que eu gostaria de
saber antes de começar a
desenvolver temas e plugins
para WordPress
… uma palestra sobre mágica
Não seja preguiçoso
A regra de ouro!
- Prazo curto
- Pode bugar outras áreas
- Tá funcionando, segue o fluxo
- Não fui eu
- Leo dá uma olhada nisso aqui - (15 ...
É importante ler a
documentação das funções
https://codex.wordpress.org/
Como funciona a query
padrão do WordPress
A query padrão do WordPress
O que é uma query?
Traduzindo para o português query significa consulta. No universo do desenv...
Como escrevo
minhas querys
no WordPress?
mistério!!!
Não escreve
A query padrão do WordPress
No desenvolvimento de temas você dificilmente vai precisar escrever uma query,
o WordPress é b...
Como modificar
corretamente a query
padrão do WordPress?
Ajude as fadinhas
… não use query_posts( );
Porque não usar query_posts();?
Eu sei que algumas pessoas acham query_posts(); mais bonitinho, mas não
façam isso com voc...
pre_get_posts();
Preguetinho
para os íntimos.
Hierarquia de modelos do
WordPress
Hierarquia de modelos do WordPress
O que são?
Como funcionam?
Qual sua ligação com a query padrão?
https://codex.wordpress...
Exemplos
Página Inicial (Home)
home.php
index.php
Post único
single-{post_type}.php
single.php
index.php
Categoria
categor...
Nos modelos do tema do seu site você, normalmente, não precisa de multiplos
loops ou modificações no loop principal, mas c...
Deixando o site ou plugin
pronto para
internacionalização
Deixando o site ou plugin pronto para
internacionalização
Quando estamos desenvolvendo um site nem todo conteúdo vem do ba...
Funções para internacionalização
Deixando o site ou plugin pronto para
internacionalização
https://codex.wordpress.org/L10...
Hooks: Actions e Filters
A varinha mágica do desenvolvedor WordPress
Hooks: Actions e Filters
Actions e filters são ganchos inseridos no core do WordPress para que os
desenvolvedores possam m...
Exemplos de action
- Enviar e-mail para um determinados usuários sempre que um novo post for
cadastrado;
- Verificar se ex...
Exemplos de filter
- Modificar o conteúdo do post ou título para inserir um rodapé por exemplo.
- Incluir classes personal...
add_action( string $tag, callable $function_to_add, int $priority = 10,int
$accepted_args = 1 );
https://developer.wordpre...
Para a mágica funcionar
todos os detalhes são
importantes
Detalhes fazem a diferença, detalhes fazem TODA diferença
O core do WordPress mostrava:
add_action( 'transition_post_status', 'post_unpublished', 10, 3 );
Eu esqueci da regra de ou...
O WordPress imprimi
classes nos elementos
HTML
Classes para estilo CSS
body_class();
class="page page-id-2 page-parent page-template-default logged-in"
post_class();
cla...
Você pode utilizar filtros para incluir clases CSS que não são padrões do
WordPress na lista de classes que serão inserida...
Você pode fazer quase tudo
com o que o WP lhe trás
pronto
Cavalo dado não se olha os dentes
Cavalo dado não se olha os dentes
Quase tudo no WordPress é um post, então quando for fazer plugin pense nisso
e se aprove...
Enviando e-mail do plugin ou Tema
wp_mail();
O WordPress já tem uma função para envio de e-mail, não precisa criar sua
pró...
Ler dados de API
wp_remote_post(); e wp_remote_get();
As duas funções recebem 2 parâmetros, a URL do endpoint que deseja l...
Ler dados de API
wp_safe_remote_post();
Esta função é ideal quando a solicitação HTTP está sendo feito para uma URL
arbitr...
Verifica usuário logado e redireciona
auth_redirect();
Essa função verifica se o usuário está logado e caso não esteja ela...
Enviar json de resposta a solicitações AJAX
wp_send_json_success( $data );
Envia um json como resposta a solicitações ajax...
Recuperar os termos filhos de uma taxonamy
get_term_children( $term, $taxonomy );
Função utilizada para recuperar o ID de ...
Tamanhos personalizados
add_image_size ($name, $width, $height, $crop=null );
Cria um tamanho personalizado para o WordPre...
Senta aqui, vamos conversar!
Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugins para WordPress
Próximos SlideShares
Carregando em…5
×

Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugins para WordPress

506 visualizações

Publicada em

Nesta apresentação eu compartilho algumas lições que eu aprendi ao longo de 10 anos desenvolvendo temas e plugins para WordPress.

Publicada em: Software
  • Seja o primeiro a comentar

Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugins para WordPress

  1. 1. Quem sou eu? É sério galera!
  2. 2. Leo Baiano #WebDev para pagar as contas Músico quando estou bêbado Poeta por vocação Romântico de nascença FAZEDOR DE SLIDES nas horas vagas Pode não parecer, mas ESTE CARA SOU EU
  3. 3. O que são temas e plugins WordPress? Tema O tema WordPress é uma coleção de arquivos que trabalham juntos para produzir uma interface gráfica para o site. Plugin Conjunto de arquivos que criam funcionalidades ou modificam funcionalidades para o site WordPress.
  4. 4. Criar VS CustomizarDesenvolver VS Customizar
  5. 5. Coisas que eu gostaria de saber antes de trabalhar com Joomla! … isso mesmo que você ouviu, Joomla!
  6. 6. Esqueça o Joomla! Joomla! é legalzinho, mas você já ouviu falar de WordPress?
  7. 7. Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugins para WordPress … uma palestra sobre mágica
  8. 8. Não seja preguiçoso A regra de ouro!
  9. 9. - Prazo curto - Pode bugar outras áreas - Tá funcionando, segue o fluxo - Não fui eu - Leo dá uma olhada nisso aqui - (15 em cada 10 atendimentos usam essa) Não seja preguiçoso
  10. 10. É importante ler a documentação das funções https://codex.wordpress.org/
  11. 11. Como funciona a query padrão do WordPress
  12. 12. A query padrão do WordPress O que é uma query? Traduzindo para o português query significa consulta. No universo do desenvolvimento uma query é o conjunto de instruções utilizadas para fazer uma consulta por informações armazenadas em um banco de dados. Exemplo: "SELECIONE todos os campos da tabela ALUNOS" - pt_BR "SELECT * FROM ALUNOS" - MySQL
  13. 13. Como escrevo minhas querys no WordPress? mistério!!! Não escreve
  14. 14. A query padrão do WordPress No desenvolvimento de temas você dificilmente vai precisar escrever uma query, o WordPress é bonzinho e faz isso para você. A query é gerada com base na página acessada através de parâmetros que são passados de forma mágica para que você não precise se preocupar. :D
  15. 15. Como modificar corretamente a query padrão do WordPress?
  16. 16. Ajude as fadinhas … não use query_posts( );
  17. 17. Porque não usar query_posts();? Eu sei que algumas pessoas acham query_posts(); mais bonitinho, mas não façam isso com vocês mesmos, não usem! O que o CODEX diz: Nota: Esta função substituirá completamente a consulta principal e não se destina a ser utilizada por plugins ou temas. Sua abordagem excessivamente simplista para modificar a consulta principal pode ser problemática e deve ser evitada sempre que possível.
  18. 18. pre_get_posts(); Preguetinho para os íntimos.
  19. 19. Hierarquia de modelos do WordPress
  20. 20. Hierarquia de modelos do WordPress O que são? Como funcionam? Qual sua ligação com a query padrão? https://codex.wordpress.org/pt-br:Hierarquia_de_Modelos_WordPress
  21. 21. Exemplos Página Inicial (Home) home.php index.php Post único single-{post_type}.php single.php index.php Categoria category-{slug}.php category-{id}.php category.php archive.php index.php Exemplos Página modelo de página page-{slug}.php page-{id}.php page.php index.php Taxonomias Personalizadas taxonomy-{taxonomia}-{termo}.php taxonomy-{taxonomia}.php taxonomy.php archive.php index.php Hierarquia de modelos do WordPress
  22. 22. Nos modelos do tema do seu site você, normalmente, não precisa de multiplos loops ou modificações no loop principal, mas caso seja necessário opte sempre por pre_get_posts() ou WP_Query(); WP_Query(); permite que você informe argumentos para realizar uma query e trazer os posts que deseja para montar seu segundo loop. Hierarquia de modelos do WordPress
  23. 23. Deixando o site ou plugin pronto para internacionalização
  24. 24. Deixando o site ou plugin pronto para internacionalização Quando estamos desenvolvendo um site nem todo conteúdo vem do banco de dados, algumas strings (texto) são impressas diretamente no arquivo de modelo. Exemplos de strings que são impressas no arquivo: Botões, label e placeholder de campos de formulário, títulos e âncoras de links...
  25. 25. Funções para internacionalização Deixando o site ou plugin pronto para internacionalização https://codex.wordpress.org/L10n http://seusobrinho.com.br/blog/funcoes-de-internacionalizacao-do-wordpress/
  26. 26. Hooks: Actions e Filters A varinha mágica do desenvolvedor WordPress
  27. 27. Hooks: Actions e Filters Actions e filters são ganchos inseridos no core do WordPress para que os desenvolvedores possam modificar o comportamento e a resposta das funções ou disparar ações em momentos específicos. Actions - Disparam ações Filters - Modificam o comportamento e resposta
  28. 28. Exemplos de action - Enviar e-mail para um determinados usuários sempre que um novo post for cadastrado; - Verificar se existem imagens associadas e deleta-las sempre que um post for deletado - Exibir um aviso sempre que determinado usuário fizer login Hooks: Actions e Filters
  29. 29. Exemplos de filter - Modificar o conteúdo do post ou título para inserir um rodapé por exemplo. - Incluir classes personalizadas na tag <body> - Alterar textos da tela de login Hooks: Actions e Filters
  30. 30. add_action( string $tag, callable $function_to_add, int $priority = 10,int $accepted_args = 1 ); https://developer.wordpress.org/reference/functions/add_action/ add_filter( string $tag, callable $function_to_add, int $priority = 10,int $accepted_args = 1 ); https://developer.wordpress.org/reference/functions/add_filter/ Hooks: Actions e Filters
  31. 31. Para a mágica funcionar todos os detalhes são importantes Detalhes fazem a diferença, detalhes fazem TODA diferença
  32. 32. O core do WordPress mostrava: add_action( 'transition_post_status', 'post_unpublished', 10, 3 ); Eu esqueci da regra de ouro NÃO SEJA PREGUIÇOSO; Eu esqueci que É IMPORTANTE LER A DOCUMENTAÇÃO E EU ME FUDI! Detalhes fazem a diferença
  33. 33. O WordPress imprimi classes nos elementos HTML
  34. 34. Classes para estilo CSS body_class(); class="page page-id-2 page-parent page-template-default logged-in" post_class(); class="post post-4564 category-48 category-dancing logged-in"
  35. 35. Você pode utilizar filtros para incluir clases CSS que não são padrões do WordPress na lista de classes que serão inseridas pelas funções body_class(); e post_class(); Classes para estilo CSS
  36. 36. Você pode fazer quase tudo com o que o WP lhe trás pronto Cavalo dado não se olha os dentes
  37. 37. Cavalo dado não se olha os dentes Quase tudo no WordPress é um post, então quando for fazer plugin pense nisso e se aproveite disso. A maioria dos plugins só precisa de alguns CPTs, então quando for criar seu plugin chame os posts pra dançar, abrace eles com carinho, fale baixinho em seu ouvido e garanta um final feliz.
  38. 38. Enviando e-mail do plugin ou Tema wp_mail(); O WordPress já tem uma função para envio de e-mail, não precisa criar sua própria função no tema ou plugin. https://developer.wordpress.org/reference/functions/wp_mail/
  39. 39. Ler dados de API wp_remote_post(); e wp_remote_get(); As duas funções recebem 2 parâmetros, a URL do endpoint que deseja ler e os argumentos, e retorna um array com o cabeçalho e conteúdo. https://codex.wordpress.org/Function_Reference/wp_remote_post https://codex.wordpress.org/Function_Reference/wp_remote_get
  40. 40. Ler dados de API wp_safe_remote_post(); Esta função é ideal quando a solicitação HTTP está sendo feito para uma URL arbitrária. A URL é validada para evitar redirecionamento e falsificação de solicitação ataques. https://developer.wordpress.org/reference/functions/wp_safe_remote_post/
  41. 41. Verifica usuário logado e redireciona auth_redirect(); Essa função verifica se o usuário está logado e caso não esteja ela redireciona ele para a página de login. Ela guarda a página que o usuário tentou acessar e redireciona ele de volta para ela quando ele faz o login. Esqueci dessa função ontem!
  42. 42. Enviar json de resposta a solicitações AJAX wp_send_json_success( $data ); Envia um json como resposta a solicitações ajax. Você pode até usar json_decode(); do PHP, mas ai perde toda a mágica do WordPress.
  43. 43. Recuperar os termos filhos de uma taxonamy get_term_children( $term, $taxonomy ); Função utilizada para recuperar o ID de todos os termos filhos de um deteminado termo de taxonomia.
  44. 44. Tamanhos personalizados add_image_size ($name, $width, $height, $crop=null ); Cria um tamanho personalizado para o WordPress fazer o crop ou resize automaticamente após o upload das imagens. add_filter ( 'image_size_names_choose', 'my_custom_sizes'); Adiciona um tamanho personalizado na lista de tamanhos que aparece quando o usuário vai inserir uma imagem no post.
  45. 45. Senta aqui, vamos conversar!

×