SlideShare uma empresa Scribd logo
Introdução a Hooks
Aprenda a customizar o WordPress
com filtros e ações
Thiago Censi
thiago censi • introdução a hooks wordcamp sp 2016
Thiago Censi
• facebook.com/tacensi
• github.com/tacensi
• br.wordpress.org/support/users/frq/
• tacensi@gmail.com
thiago censi • introdução a hooks wordcamp sp 2016
thiago censi • introdução a hooks wordcamp sp 2016
O que são Hooks?
Tradução:	Gancho
Hook:	 a piece of metal or other material, curved or bent
back at an angle, for catching hold of or hanging
things on.
To hook:	 attach or fasten with a hook or hooks.
thiago censi • introdução a hooks wordcamp sp 2016
Hooks no WordPress
Servem para pendurar, prender, anexar ações individuais para
alterar ou acrescentar conteúdo ou funcionalidades ao WP
Dois tipos: 	 Actions e Filters
Tl;dr:	 Actions fazem alguma coisa. Filters modificam
alguma coisa.
thiago censi • introdução a hooks wordcamp sp 2016
Exemplos no core: action
// wp_includes/general_template.php:2200
function wp_head() {
/**
* Prints scripts or data in the head tag on the front end.
*
* @since 1.5.0
*/
do_action( 'wp_head' );
}
thiago censi • introdução a hooks wordcamp sp 2016
Exemplos no core: filter
// wp_includes/post_template.php:220
function the_content( $more_link_text = null, $strip_teaser =
false) {
$content = get_the_content( $more_link_text, $strip_teaser
);
/**
* Filters the post content.
* @since 0.71
* @param string $content Content of the current post.
*/
$content = apply_filters( 'the_content', $content );
$content = str_replace( ']]>', ']]>', $content );
echo $content;
}
thiago censi • introdução a hooks wordcamp sp 2016
Por quê!?
• API usada por plugins e temas para interação com WP (plugin API);
• Mude o comportamento do WP sem mexer em arquivos do core;
• Altere temas filho sem alterar os arquivos do tema. Ex: temas
que usam frameworks;
• Altere o comportamento de plugins sem mexer em seus arquivos;
• Separe os hooks em plugins para modulação e fácil
ativação/desativação;
• Mantenha WP/tema/plugins funcionando com updates;
• O jeito WordPress (the WP way)
thiago censi • introdução a hooks wordcamp sp 2016
Adicionando hooks
// action
add_action( 'tag', 'function', 'priority', 'parameters' );
// filter
add_filter( ‘tag’, ‘function’, ‘priority’, ‘parameters’ );
thiago censi • introdução a hooks wordcamp sp 2016
Partes de um hooks: tag
// action
add_action( 'tag', 'function', 'priority', 'parameters' );
// filter
add_filter( 'tag', 'function', 'priority', 'parameters' );
Nome do hook, onde/quando a função de callback será chamada.
thiago censi • introdução a hooks wordcamp sp 2016
Partes de um hook: tag (filter)
// wp_includes/post_template.php:220
function the_content( $more_link_text = null, $strip_teaser =
false) {
$content = get_the_content( $more_link_text, $strip_teaser
);
/**
* Filters the post content.
* @since 0.71
* @param string $content Content of the current post.
*/
$content = apply_filters( 'the_content', $content );
$content = str_replace( ']]>', ']]>', $content );
echo $content;
}
thiago censi • introdução a hooks wordcamp sp 2016
Partes de um hook: tag (filter)
// Não devemos nomear o lorde das trevas
add_filter( 'the_content', function( $content ) {
return str_replace( 'Voldemort', 'Aquele-Que-Não-Deve-Ser-
Nomeado',
$content );
}, 30 );
thiago censi • introdução a hooks wordcamp sp 2016
Partes de um hook: tag (action)
// wp_includes/general_template.php:2200
function wp_head() {
/**
* Prints scripts or data in the head tag on the front end.
*
* @since 1.5.0
*/
do_action( 'wp_head' );
}
thiago censi • introdução a hooks wordcamp sp 2016
Partes de um hook: tag (action)
// wp_includes/general_template.php:2200
add_action( 'wp_head', function(){
echo 'OpenGraph Tags...';
}, 10 );
thiago censi • introdução a hooks wordcamp sp 2016
Partes de um hooks: função de callback
// action
add_action( 'tag', 'function', 'priority', 'parameters' );
// filter
add_filter( 'tag', 'function', 'priority', 'parameters' );
Nome da sua função
thiago censi • introdução a hooks wordcamp sp 2016
Partes de um hook: function (action)
// wp_includes/general_template.php:2200
add_action( 'wp_head', 'tacensi_add_og_meta', 10 );
function tacensi_add_og_meta(){
echo 'OpenGraph Tags...';
}
thiago censi • introdução a hooks wordcamp sp 2016
Partes de um hook: function (filter)
// Não devemos nomear o lorde das trevas
add_filter( 'the_content', 'tacensi_never_say_his_name', 30 );
function tacensi_never_say_his_name( $content ) {
return str_replace(
'Voldemort',
'Aquele-Que-Não-Deve-Ser-Nomeado',
$content
);
}
thiago censi • introdução a hooks wordcamp sp 2016
Partes de um hooks: prioridade de execução
// action
add_action( 'tag', 'function', 'priority', 'parameters' );
// filter
add_filter( 'tag', 'function', 'priority', 'parameters' );
Ordem de execução de todas as funções penduradas naquele
hook. São executadas em ordem crescente (10, 20, 30, etc...).
thiago censi • introdução a hooks wordcamp sp 2016
Partes de um hook: priority (action)
// wp_includes/default_filters.php:205
add_action( 'wp_head', '_wp_render_title_tag', 1 );
add_action( 'wp_head', 'wp_enqueue_scripts', 1 );
add_action( 'wp_head', 'feed_links', 2 );
add_action( 'wp_head', 'feed_links_extra', 3 );
add_action( 'wp_head', 'rsd_link' );
add_action( 'wp_head', 'wlwmanifest_link' );
thiago censi • introdução a hooks wordcamp sp 2016
Partes de um hook: priority (filter)
// wp_includes/default_filters.php:145
add_filter( 'comment_text', 'wptexturize' );
add_filter( 'comment_text', 'convert_chars' );
add_filter( 'comment_text', 'make_clickable', 9 );
add_filter( 'comment_text', 'force_balance_tags', 25 );
add_filter( 'comment_text', 'convert_smilies', 20 );
add_filter( 'comment_text', 'wpautop', 30 );
/**
Deve-se tomar mais cuidado com a prioridade nos filtros, já que
um alteração pode interferir em outra.
**/
thiago censi • introdução a hooks wordcamp sp 2016
Partes de um hooks: Número de parâmetros
// action
add_action( 'tag', 'function', 'priority', 'parameters' );
// filter
add_filter( 'tag', 'function', 'priority', 'parameters' );
Quantos parâmetros a função aceita. Se não há uma
documentação devemos cavar no fonte.
thiago censi • introdução a hooks wordcamp sp 2016
Partes de um hook: parameters (action)
// wp_includes/default_filters.php:288
add_action( 'post_updated',
'wp_check_for_changed_slugs', 12, 3 );
// wp-includes/post.php:5286
/**
* @param int $post_id Post ID.
* @param WP_Post $post The Post Object
* @param WP_Post $post_before The Previous Post Object
* @return int Same as $post_id
*/
function wp_check_for_changed_slugs(
$post_id, $post, $post_before ) {
// (...)
}
thiago censi • introdução a hooks wordcamp sp 2016
Partes de um hook: parameters (filter)
// wp_includes/formatting.php:1311
add_action( 'sanitize_title',
'sanitize_title_with_dashes', 10, 3 );
// wp-includes/post.php:5286
/**
* @param string $title The title to be sanitized.
* @param string $raw_title Optional. Not used.
* @param string $context Optional. The operation for which the
string is sanitized.
* @return string The sanitized title.
*/
function sanitize_title_with_dashes(
$title, $raw_title = '', $post_before ) {
// (...)
}
thiago censi • introdução a hooks wordcamp sp 2016
Removendo actions ou filters
// action
remove_action( $tag, $function_to_remove, $priority );
remove_all_actions( $tag, $priority );
// filter
remove_filter( $tag, $function_to_remove, $priority );
remove_all_filters( $tag, $priority );
Podemos remover um ou todos os hooks de determinado
filtro ou ação
thiago censi • introdução a hooks wordcamp sp 2016
Removendo actions
// remove update warning
function tacensi_remove_update_warning() {
if ( ! current_user_can( 'activate_plugins' ) )
remove_action( 'admin_notices', 'update_nag', 3 );
}
add_action(
'admin_notices',
'tacensi_remove_update_warning',
1
);
thiago censi • introdução a hooks wordcamp sp 2016
Exemplos: remove_action
// remove header info
function tacensi_remove_header_info() {
remove_action( 'wp_head', 'rsd_link' );
remove_action( 'wp_head', 'wlwmanifest_link' );
remove_action( 'wp_head', 'wp_generator' );
remove_action( 'wp_head', 'start_post_rel_link' );
remove_action( 'wp_head', 'index_rel_link' );
remove_action( 'wp_head', 'adjacent_posts_rel_link' );
}
add_action( 'init', 'tacensi_remove_header_info' );
thiago censi • introdução a hooks wordcamp sp 2016
Exemplos: add_action
// add promo banner
add_action(
'woocommerce_before_shop_loop',
'tacensi_add_promo'
);
function tacensi_add_promo() {
?>
<div class="banner-promo">
<h2>O patrão está maluco!</h2>
<p>Somente hoje, tudo pela metade do dobro!</p>
</div>
<?php
}
thiago censi • introdução a hooks wordcamp sp 2016
Exemplos: add_action
thiago censi • introdução a hooks wordcamp sp 2016
Exemplos: add_filter
// change 0800 text
add_filter(
'woocommerce_free_price_html',
'tacensi_free_price'
);
function tacensi_free_price( $price ) {
$price = '<span class="amount">' .
__( 'Totalmente de GRÁTIS!', 'tacensi' ) .
'</span>';
return $price;
}
thiago censi • introdução a hooks wordcamp sp 2016
Exemplos: add_filter
thiago censi • introdução a hooks wordcamp sp 2016
Exemplos: add_filter
// change 2017 home sections
add_filter(
'twentyseventeen_front_page_sections',
function(){
return 5;
}
);
thiago censi • introdução a hooks wordcamp sp 2016
Exemplos: add_filter
thiago censi • introdução a hooks wordcamp sp 2016
Exemplos: add_action
// 2016 credits
add_action( 'twentysixteen_credits', 'tacensi_copyright' );
function tacensi_copyright() {
echo '<p>&copy; Copyright ' . date( 'Y' ) . ' Acme Inc.</p>';
}
thiago censi • introdução a hooks wordcamp sp 2016
Exemplos: add_action
thiago censi • introdução a hooks wordcamp sp 2016
Mais informações
Codex:	 codex.wordpress.org/Plugin_API
Hook data:	 adambrown.info/p/wp_hooks
Woo:	 docs.woocommerce.com/document/
introduction-to-hooks-actions-and-filters/
Mais:	 Leitura e análise do core ;-)
thiago censi • introdução a hooks wordcamp sp 2016
Obrigado.

Mais conteúdo relacionado

KEY
Python 06
ODP
servlet-requisicoes
PPTX
Como Dominar seu Fluxo de Desenvolvimento com TDD
PPTX
Segurança da informação palestra wordcamp sp 2016
PPTX
WordCamp SP 2016
PDF
Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
PPTX
Case Editora Abril
PPTX
Content Marketing - WordCamp São Paulo 2016
Python 06
servlet-requisicoes
Como Dominar seu Fluxo de Desenvolvimento com TDD
Segurança da informação palestra wordcamp sp 2016
WordCamp SP 2016
Configurando SSL com Let’s Encrypt, EasyEngine e WP-CLI
Case Editora Abril
Content Marketing - WordCamp São Paulo 2016

Destaque (9)

PDF
Gerenciando sites em WordPress de forma eficiente: do deploy à manutenção
PDF
Estilizando temas de WordPress
PPTX
Como Limpar Seu Site WordPress
PPTX
Eventos de Sucesso usam WordPress.
PDF
Traduções no WordPress
PPTX
Matéria Impressa convertida ao virtual
 
PDF
Métricas - Product tank
PDF
Dove Brand Book
PPSX
Apresentação kariris mkt digital
Gerenciando sites em WordPress de forma eficiente: do deploy à manutenção
Estilizando temas de WordPress
Como Limpar Seu Site WordPress
Eventos de Sucesso usam WordPress.
Traduções no WordPress
Matéria Impressa convertida ao virtual
 
Métricas - Product tank
Dove Brand Book
Apresentação kariris mkt digital
Anúncio

Semelhante a Introdução a Hooks - Aprenda a customizar o WordPress com filtros e ações (20)

PDF
Como criar um plugin para WordPress
KEY
Python 07
PDF
Django Módulo Básico Parte II
PDF
Desenvolvendo plugin para WordPress
PDF
Django: Desenvolvendo uma aplicação web em minutos
PPTX
Desenvolvendo aplicativos web com o google app engine
PPT
Mini curso de django
PDF
Devfest Cerrado: Angular 2
PDF
Evento Front End SP - Arquitetura de Front
PDF
(A10) LabMM3 - JavaScript - Subalgoritmos
PDF
Angular 2 em 60 minutos
PDF
Java script aula 10 - angularjs
PDF
Treinamento Básico de Django
PPTX
Hooks, plugins, eventos e serviços, como usar tudo isso no drupal 8?
PDF
Desenvolvimento de plugins WordPress
PDF
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
PDF
Implementação de
PDF
Programando para programadores: Desafios na evolução de um Framework
PDF
Vale Security Conference - 2011 - 6 - Thiago Bordini
PDF
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Como criar um plugin para WordPress
Python 07
Django Módulo Básico Parte II
Desenvolvendo plugin para WordPress
Django: Desenvolvendo uma aplicação web em minutos
Desenvolvendo aplicativos web com o google app engine
Mini curso de django
Devfest Cerrado: Angular 2
Evento Front End SP - Arquitetura de Front
(A10) LabMM3 - JavaScript - Subalgoritmos
Angular 2 em 60 minutos
Java script aula 10 - angularjs
Treinamento Básico de Django
Hooks, plugins, eventos e serviços, como usar tudo isso no drupal 8?
Desenvolvimento de plugins WordPress
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Implementação de
Programando para programadores: Desafios na evolução de um Framework
Vale Security Conference - 2011 - 6 - Thiago Bordini
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Anúncio

Introdução a Hooks - Aprenda a customizar o WordPress com filtros e ações

  • 1. Introdução a Hooks Aprenda a customizar o WordPress com filtros e ações Thiago Censi
  • 2. thiago censi • introdução a hooks wordcamp sp 2016 Thiago Censi • facebook.com/tacensi • github.com/tacensi • br.wordpress.org/support/users/frq/ • tacensi@gmail.com
  • 3. thiago censi • introdução a hooks wordcamp sp 2016
  • 4. thiago censi • introdução a hooks wordcamp sp 2016 O que são Hooks? Tradução: Gancho Hook: a piece of metal or other material, curved or bent back at an angle, for catching hold of or hanging things on. To hook: attach or fasten with a hook or hooks.
  • 5. thiago censi • introdução a hooks wordcamp sp 2016 Hooks no WordPress Servem para pendurar, prender, anexar ações individuais para alterar ou acrescentar conteúdo ou funcionalidades ao WP Dois tipos: Actions e Filters Tl;dr: Actions fazem alguma coisa. Filters modificam alguma coisa.
  • 6. thiago censi • introdução a hooks wordcamp sp 2016 Exemplos no core: action // wp_includes/general_template.php:2200 function wp_head() { /** * Prints scripts or data in the head tag on the front end. * * @since 1.5.0 */ do_action( 'wp_head' ); }
  • 7. thiago censi • introdução a hooks wordcamp sp 2016 Exemplos no core: filter // wp_includes/post_template.php:220 function the_content( $more_link_text = null, $strip_teaser = false) { $content = get_the_content( $more_link_text, $strip_teaser ); /** * Filters the post content. * @since 0.71 * @param string $content Content of the current post. */ $content = apply_filters( 'the_content', $content ); $content = str_replace( ']]>', ']]&gt;', $content ); echo $content; }
  • 8. thiago censi • introdução a hooks wordcamp sp 2016 Por quê!? • API usada por plugins e temas para interação com WP (plugin API); • Mude o comportamento do WP sem mexer em arquivos do core; • Altere temas filho sem alterar os arquivos do tema. Ex: temas que usam frameworks; • Altere o comportamento de plugins sem mexer em seus arquivos; • Separe os hooks em plugins para modulação e fácil ativação/desativação; • Mantenha WP/tema/plugins funcionando com updates; • O jeito WordPress (the WP way)
  • 9. thiago censi • introdução a hooks wordcamp sp 2016 Adicionando hooks // action add_action( 'tag', 'function', 'priority', 'parameters' ); // filter add_filter( ‘tag’, ‘function’, ‘priority’, ‘parameters’ );
  • 10. thiago censi • introdução a hooks wordcamp sp 2016 Partes de um hooks: tag // action add_action( 'tag', 'function', 'priority', 'parameters' ); // filter add_filter( 'tag', 'function', 'priority', 'parameters' ); Nome do hook, onde/quando a função de callback será chamada.
  • 11. thiago censi • introdução a hooks wordcamp sp 2016 Partes de um hook: tag (filter) // wp_includes/post_template.php:220 function the_content( $more_link_text = null, $strip_teaser = false) { $content = get_the_content( $more_link_text, $strip_teaser ); /** * Filters the post content. * @since 0.71 * @param string $content Content of the current post. */ $content = apply_filters( 'the_content', $content ); $content = str_replace( ']]>', ']]&gt;', $content ); echo $content; }
  • 12. thiago censi • introdução a hooks wordcamp sp 2016 Partes de um hook: tag (filter) // Não devemos nomear o lorde das trevas add_filter( 'the_content', function( $content ) { return str_replace( 'Voldemort', 'Aquele-Que-Não-Deve-Ser- Nomeado', $content ); }, 30 );
  • 13. thiago censi • introdução a hooks wordcamp sp 2016 Partes de um hook: tag (action) // wp_includes/general_template.php:2200 function wp_head() { /** * Prints scripts or data in the head tag on the front end. * * @since 1.5.0 */ do_action( 'wp_head' ); }
  • 14. thiago censi • introdução a hooks wordcamp sp 2016 Partes de um hook: tag (action) // wp_includes/general_template.php:2200 add_action( 'wp_head', function(){ echo 'OpenGraph Tags...'; }, 10 );
  • 15. thiago censi • introdução a hooks wordcamp sp 2016 Partes de um hooks: função de callback // action add_action( 'tag', 'function', 'priority', 'parameters' ); // filter add_filter( 'tag', 'function', 'priority', 'parameters' ); Nome da sua função
  • 16. thiago censi • introdução a hooks wordcamp sp 2016 Partes de um hook: function (action) // wp_includes/general_template.php:2200 add_action( 'wp_head', 'tacensi_add_og_meta', 10 ); function tacensi_add_og_meta(){ echo 'OpenGraph Tags...'; }
  • 17. thiago censi • introdução a hooks wordcamp sp 2016 Partes de um hook: function (filter) // Não devemos nomear o lorde das trevas add_filter( 'the_content', 'tacensi_never_say_his_name', 30 ); function tacensi_never_say_his_name( $content ) { return str_replace( 'Voldemort', 'Aquele-Que-Não-Deve-Ser-Nomeado', $content ); }
  • 18. thiago censi • introdução a hooks wordcamp sp 2016 Partes de um hooks: prioridade de execução // action add_action( 'tag', 'function', 'priority', 'parameters' ); // filter add_filter( 'tag', 'function', 'priority', 'parameters' ); Ordem de execução de todas as funções penduradas naquele hook. São executadas em ordem crescente (10, 20, 30, etc...).
  • 19. thiago censi • introdução a hooks wordcamp sp 2016 Partes de um hook: priority (action) // wp_includes/default_filters.php:205 add_action( 'wp_head', '_wp_render_title_tag', 1 ); add_action( 'wp_head', 'wp_enqueue_scripts', 1 ); add_action( 'wp_head', 'feed_links', 2 ); add_action( 'wp_head', 'feed_links_extra', 3 ); add_action( 'wp_head', 'rsd_link' ); add_action( 'wp_head', 'wlwmanifest_link' );
  • 20. thiago censi • introdução a hooks wordcamp sp 2016 Partes de um hook: priority (filter) // wp_includes/default_filters.php:145 add_filter( 'comment_text', 'wptexturize' ); add_filter( 'comment_text', 'convert_chars' ); add_filter( 'comment_text', 'make_clickable', 9 ); add_filter( 'comment_text', 'force_balance_tags', 25 ); add_filter( 'comment_text', 'convert_smilies', 20 ); add_filter( 'comment_text', 'wpautop', 30 ); /** Deve-se tomar mais cuidado com a prioridade nos filtros, já que um alteração pode interferir em outra. **/
  • 21. thiago censi • introdução a hooks wordcamp sp 2016 Partes de um hooks: Número de parâmetros // action add_action( 'tag', 'function', 'priority', 'parameters' ); // filter add_filter( 'tag', 'function', 'priority', 'parameters' ); Quantos parâmetros a função aceita. Se não há uma documentação devemos cavar no fonte.
  • 22. thiago censi • introdução a hooks wordcamp sp 2016 Partes de um hook: parameters (action) // wp_includes/default_filters.php:288 add_action( 'post_updated', 'wp_check_for_changed_slugs', 12, 3 ); // wp-includes/post.php:5286 /** * @param int $post_id Post ID. * @param WP_Post $post The Post Object * @param WP_Post $post_before The Previous Post Object * @return int Same as $post_id */ function wp_check_for_changed_slugs( $post_id, $post, $post_before ) { // (...) }
  • 23. thiago censi • introdução a hooks wordcamp sp 2016 Partes de um hook: parameters (filter) // wp_includes/formatting.php:1311 add_action( 'sanitize_title', 'sanitize_title_with_dashes', 10, 3 ); // wp-includes/post.php:5286 /** * @param string $title The title to be sanitized. * @param string $raw_title Optional. Not used. * @param string $context Optional. The operation for which the string is sanitized. * @return string The sanitized title. */ function sanitize_title_with_dashes( $title, $raw_title = '', $post_before ) { // (...) }
  • 24. thiago censi • introdução a hooks wordcamp sp 2016 Removendo actions ou filters // action remove_action( $tag, $function_to_remove, $priority ); remove_all_actions( $tag, $priority ); // filter remove_filter( $tag, $function_to_remove, $priority ); remove_all_filters( $tag, $priority ); Podemos remover um ou todos os hooks de determinado filtro ou ação
  • 25. thiago censi • introdução a hooks wordcamp sp 2016 Removendo actions // remove update warning function tacensi_remove_update_warning() { if ( ! current_user_can( 'activate_plugins' ) ) remove_action( 'admin_notices', 'update_nag', 3 ); } add_action( 'admin_notices', 'tacensi_remove_update_warning', 1 );
  • 26. thiago censi • introdução a hooks wordcamp sp 2016 Exemplos: remove_action // remove header info function tacensi_remove_header_info() { remove_action( 'wp_head', 'rsd_link' ); remove_action( 'wp_head', 'wlwmanifest_link' ); remove_action( 'wp_head', 'wp_generator' ); remove_action( 'wp_head', 'start_post_rel_link' ); remove_action( 'wp_head', 'index_rel_link' ); remove_action( 'wp_head', 'adjacent_posts_rel_link' ); } add_action( 'init', 'tacensi_remove_header_info' );
  • 27. thiago censi • introdução a hooks wordcamp sp 2016 Exemplos: add_action // add promo banner add_action( 'woocommerce_before_shop_loop', 'tacensi_add_promo' ); function tacensi_add_promo() { ?> <div class="banner-promo"> <h2>O patrão está maluco!</h2> <p>Somente hoje, tudo pela metade do dobro!</p> </div> <?php }
  • 28. thiago censi • introdução a hooks wordcamp sp 2016 Exemplos: add_action
  • 29. thiago censi • introdução a hooks wordcamp sp 2016 Exemplos: add_filter // change 0800 text add_filter( 'woocommerce_free_price_html', 'tacensi_free_price' ); function tacensi_free_price( $price ) { $price = '<span class="amount">' . __( 'Totalmente de GRÁTIS!', 'tacensi' ) . '</span>'; return $price; }
  • 30. thiago censi • introdução a hooks wordcamp sp 2016 Exemplos: add_filter
  • 31. thiago censi • introdução a hooks wordcamp sp 2016 Exemplos: add_filter // change 2017 home sections add_filter( 'twentyseventeen_front_page_sections', function(){ return 5; } );
  • 32. thiago censi • introdução a hooks wordcamp sp 2016 Exemplos: add_filter
  • 33. thiago censi • introdução a hooks wordcamp sp 2016 Exemplos: add_action // 2016 credits add_action( 'twentysixteen_credits', 'tacensi_copyright' ); function tacensi_copyright() { echo '<p>&copy; Copyright ' . date( 'Y' ) . ' Acme Inc.</p>'; }
  • 34. thiago censi • introdução a hooks wordcamp sp 2016 Exemplos: add_action
  • 35. thiago censi • introdução a hooks wordcamp sp 2016 Mais informações Codex: codex.wordpress.org/Plugin_API Hook data: adambrown.info/p/wp_hooks Woo: docs.woocommerce.com/document/ introduction-to-hooks-actions-and-filters/ Mais: Leitura e análise do core ;-)
  • 36. thiago censi • introdução a hooks wordcamp sp 2016 Obrigado.