SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
Hooks no
WordPress
Felipe Elia – Meetup Curitiba – 27/05/2017
O que são hooks?
Modificar o comportamento
sem modificar o código
- Alterar o conteúdo de um post antes de inserir no BD
- Enviar um e-mail ao excluir um usuário
Filters
Alterar valor de variável
Tem retorno
the_title
the_content
login_headerurl
wp_insert_post_data
Hooks no WordPress
Actions
Fazer alguma coisa / Gatilho
Não tem retorno
init
plugins_loaded
wp_enqueue_scripts
delete_user
Hooks no WordPress
Filters
add_filter( $tag, $funcao, $prioridade = 10, $num_args = 1 );
// Orientado a Objeto:
add_filter( $tag, array( $this, $metodo ) );
add_filter( $tag, array( 'Nome_da_Classe', $metodo_estatico ) );
remove_filter( $tag, $funcao, $prioridade = 10 );
apply_filters( $tag, $valor [, $param_1, $param_2, ...] );
Hooks no WordPress
No functions.php do tema:
function direitos_conteudo( $conteudo ) {
return $conteudo . '<p>Todos os direitos reservados.</p>';
}
add_filter( 'the_content', 'direitos_conteudo' );
No wp-includes/post-template.php:
function the_content( $more_link_text = null, $strip_teaser = false) {
...
$content = apply_filters( 'the_content', $content );
...
}
Hooks no WordPress
Prioridade 8:
WP_Embed->run_shortcode();
WP_Embed->autoembed();
Prioridade 10:
wptexturize
wpautop
shortcode_unautop
prepend_attachment
wp_make_content_images_responsive
Prioridade 11:
capital_P_dangit
do_shortcode
convert_smilies
Filtros nativos em
the_content
Hooks no WordPress
No wp-includes/post-template.php: function get_the_title( $post = 0 ) {
...
return apply_filters( 'the_title', $title, $id );
}
No functions.php do tema: function titulo_negrito( $titulo ) {
return '<strong>' . $titulo . '</strong>';
}
add_filter( 'the_title', 'titulo_negrito' );
function titulo_categoria_x( $titulo, $id = null ) {
if ( in_category( 'novidades', $id ) ) {
return '';
}
return $titulo;
}
add_filter( 'the_title', 'titulo_categoria_x', 10, 2 );
Hooks no WordPress
Actions
add_action( $tag, $funcao, $prioridade = 10, $num_args = 1 );
// Orientado a Objeto:
add_action( $tag, array( $this, $metodo ) );
add_action( $tag, array( 'Nome_da_Classe', $metodo_estatico ) );
remove_action( $tag, $funcao, $prioridade = 10 );
do_action( $tag, [, $param_1, $param_2, ...] );
Dúvidas?
Obrigado!
Felipe Elia
felipe.elia@duo-me.com
@felipe_elia
slideshare.net/felipe_elia

Mais conteúdo relacionado

Semelhante a Hooks no WordPress

PHP robusto com Zend Framework
PHP robusto com Zend FrameworkPHP robusto com Zend Framework
PHP robusto com Zend FrameworkJaime Neto
 
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Rodrigo Urubatan
 
Curso de Ruby on Rails - Aula 03
Curso de Ruby on Rails - Aula 03Curso de Ruby on Rails - Aula 03
Curso de Ruby on Rails - Aula 03Maurício Linhares
 
Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009silva.edgar
 
Meu projeto final - Neobase 2.0
Meu projeto final - Neobase 2.0Meu projeto final - Neobase 2.0
Meu projeto final - Neobase 2.0Saulo Vallory
 
modernizando a arquitertura de sua aplicação
modernizando a arquitertura  de sua aplicaçãomodernizando a arquitertura  de sua aplicação
modernizando a arquitertura de sua aplicaçãoAntonio Spinelli
 
Sweet Child O' Themes
Sweet Child O' ThemesSweet Child O' Themes
Sweet Child O' ThemesBreno Alves
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que pareceImpacta Eventos
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosGeorge Mendonça
 
Simplificando o Javascrip
Simplificando o JavascripSimplificando o Javascrip
Simplificando o JavascripMiquéias Amaro
 
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
 
Curso de Ruby on Rails - Aula 04
Curso de Ruby on Rails - Aula 04Curso de Ruby on Rails - Aula 04
Curso de Ruby on Rails - Aula 04Maurício Linhares
 
Meu primeiro tema de WordPress
Meu primeiro tema de WordPressMeu primeiro tema de WordPress
Meu primeiro tema de WordPressLuan Muniz
 
Desenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDesenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDaniel Paz
 
WordPress além dos blogs #fisl14
WordPress além dos blogs #fisl14WordPress além dos blogs #fisl14
WordPress além dos blogs #fisl14Tatiane Pires
 
Turbinando o WordPress com Meta Boxes
Turbinando o WordPress com Meta BoxesTurbinando o WordPress com Meta Boxes
Turbinando o WordPress com Meta BoxesWordPress Floripa
 
Programação Orientada a Objetos (POO) com PHP - Parte 1
Programação Orientada a Objetos (POO) com PHP - Parte 1Programação Orientada a Objetos (POO) com PHP - Parte 1
Programação Orientada a Objetos (POO) com PHP - Parte 1Israel Messias
 

Semelhante a Hooks no WordPress (20)

PHP robusto com Zend Framework
PHP robusto com Zend FrameworkPHP robusto com Zend Framework
PHP robusto com Zend Framework
 
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
 
Curso de Ruby on Rails - Aula 03
Curso de Ruby on Rails - Aula 03Curso de Ruby on Rails - Aula 03
Curso de Ruby on Rails - Aula 03
 
Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009
 
Meu projeto final - Neobase 2.0
Meu projeto final - Neobase 2.0Meu projeto final - Neobase 2.0
Meu projeto final - Neobase 2.0
 
Aula5
Aula5Aula5
Aula5
 
modernizando a arquitertura de sua aplicação
modernizando a arquitertura  de sua aplicaçãomodernizando a arquitertura  de sua aplicação
modernizando a arquitertura de sua aplicação
 
Sweet Child O' Themes
Sweet Child O' ThemesSweet Child O' Themes
Sweet Child O' Themes
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e Objetos
 
Simplificando o Javascrip
Simplificando o JavascripSimplificando o Javascrip
Simplificando o Javascrip
 
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
Zend FrameworkZend Framework
Zend Framework
 
Curso de Ruby on Rails - Aula 04
Curso de Ruby on Rails - Aula 04Curso de Ruby on Rails - Aula 04
Curso de Ruby on Rails - Aula 04
 
Meu primeiro tema de WordPress
Meu primeiro tema de WordPressMeu primeiro tema de WordPress
Meu primeiro tema de WordPress
 
Desenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDesenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi Builder
 
WordPress além dos blogs #fisl14
WordPress além dos blogs #fisl14WordPress além dos blogs #fisl14
WordPress além dos blogs #fisl14
 
Turbinando o WordPress com Meta Boxes
Turbinando o WordPress com Meta BoxesTurbinando o WordPress com Meta Boxes
Turbinando o WordPress com Meta Boxes
 
Programação Orientada a Objetos (POO) com PHP - Parte 1
Programação Orientada a Objetos (POO) com PHP - Parte 1Programação Orientada a Objetos (POO) com PHP - Parte 1
Programação Orientada a Objetos (POO) com PHP - Parte 1
 

Hooks no WordPress

  • 1. Hooks no WordPress Felipe Elia – Meetup Curitiba – 27/05/2017
  • 2. O que são hooks? Modificar o comportamento sem modificar o código - Alterar o conteúdo de um post antes de inserir no BD - Enviar um e-mail ao excluir um usuário
  • 3. Filters Alterar valor de variável Tem retorno the_title the_content login_headerurl wp_insert_post_data Hooks no WordPress Actions Fazer alguma coisa / Gatilho Não tem retorno init plugins_loaded wp_enqueue_scripts delete_user
  • 4. Hooks no WordPress Filters add_filter( $tag, $funcao, $prioridade = 10, $num_args = 1 ); // Orientado a Objeto: add_filter( $tag, array( $this, $metodo ) ); add_filter( $tag, array( 'Nome_da_Classe', $metodo_estatico ) ); remove_filter( $tag, $funcao, $prioridade = 10 ); apply_filters( $tag, $valor [, $param_1, $param_2, ...] );
  • 5. Hooks no WordPress No functions.php do tema: function direitos_conteudo( $conteudo ) { return $conteudo . '<p>Todos os direitos reservados.</p>'; } add_filter( 'the_content', 'direitos_conteudo' ); No wp-includes/post-template.php: function the_content( $more_link_text = null, $strip_teaser = false) { ... $content = apply_filters( 'the_content', $content ); ... }
  • 6. Hooks no WordPress Prioridade 8: WP_Embed->run_shortcode(); WP_Embed->autoembed(); Prioridade 10: wptexturize wpautop shortcode_unautop prepend_attachment wp_make_content_images_responsive Prioridade 11: capital_P_dangit do_shortcode convert_smilies Filtros nativos em the_content
  • 7. Hooks no WordPress No wp-includes/post-template.php: function get_the_title( $post = 0 ) { ... return apply_filters( 'the_title', $title, $id ); } No functions.php do tema: function titulo_negrito( $titulo ) { return '<strong>' . $titulo . '</strong>'; } add_filter( 'the_title', 'titulo_negrito' ); function titulo_categoria_x( $titulo, $id = null ) { if ( in_category( 'novidades', $id ) ) { return ''; } return $titulo; } add_filter( 'the_title', 'titulo_categoria_x', 10, 2 );
  • 8. Hooks no WordPress Actions add_action( $tag, $funcao, $prioridade = 10, $num_args = 1 ); // Orientado a Objeto: add_action( $tag, array( $this, $metodo ) ); add_action( $tag, array( 'Nome_da_Classe', $metodo_estatico ) ); remove_action( $tag, $funcao, $prioridade = 10 ); do_action( $tag, [, $param_1, $param_2, ...] );