{"id":42929,"date":"2024-03-19T16:14:14","date_gmt":"2024-03-19T19:14:14","guid":{"rendered":"\/tutoriais\/?p=42929"},"modified":"2024-03-19T16:22:05","modified_gmt":"2024-03-19T19:22:05","slug":"add-filter-wordpress","status":"publish","type":"post","link":"\/br\/tutoriais\/add-filter-wordpress\/","title":{"rendered":"O que s\u00e3o filtros do WordPress e como utilizar o add_filter"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Um filtro WordPress &eacute; um <strong>hook<\/strong><strong> <\/strong>que opera sobre dados internos antes de exibi-los no navegador de internet. Para criar um filtro, basta adicionar a fun&ccedil;&atilde;o <strong>add_filter <\/strong>no arquivo&nbsp; <strong>functions.php <\/strong>do seu site.<\/p><p class=\"wp-block-paragraph\">No universo do desenvolvimento de sites WordPress, os usu&aacute;rios utilizam esse filtro para modificar algum plugin, tema ou funcionalidade espec&iacute;fica do site. Por exemplo, voc&ecirc; pode alterar o comprimento dos trechos textuais das pr&eacute;vias dos seus posts ou adicionar uma nota de rodap&eacute; nas publica&ccedil;&otilde;es.&nbsp;<\/p><p class=\"wp-block-paragraph\">Neste <strong>tutorial WordPress<\/strong>, vamos explicar como utilizar a fun&ccedil;&atilde;o <strong>add_filter <\/strong>para criar um hook de filtro. Al&eacute;m disso, tamb&eacute;m vamos explorar os par&acirc;metros desta fun&ccedil;&atilde;o e apresentar os usos mais comuns desse elemento.&nbsp;<\/p><p>\n\n\n\n\n\n\n\n\n<\/p><p class=\"wp-block-paragraph\"><\/p><p>\n\n\n<div class=\"protip\"><div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                   O Que &Eacute; Um Filtro WordPress?\n                <\/p>\n            <\/div>\n            <p class=\"protip__content\">Um filtro WordPress &eacute; um hook, ou gancho, que modifica certos dados antes deles serem processados pelo banco de dados e exibidos aos usu&aacute;rios. Consequentemente, voc&ecirc; pode personalizar plugins, temas ou funcionalidades do seu site sem precisar mexer nos arquivos estruturais do WordPress (<em>core files<\/em>).&nbsp;<\/p><p>Por exemplo, adicione uma nota de rodap&eacute; em todos os posts do site ou altere o tamanho da descri&ccedil;&atilde;o exibida nas miniaturas de artigos e publica&ccedil;&otilde;es. H&aacute; quatro fun&ccedil;&otilde;es comuns do hook de filtro: <strong>add_filter<\/strong>, <strong>remove_filter<\/strong>, <strong>has_filter<\/strong> e <strong>doing_filter<\/strong>.<\/p><\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-como-o-wordpress-filtra-os-dados\"><strong>Como o WordPress Filtra os Dados<\/strong><\/h2><p class=\"wp-block-paragraph\">Resumidamente, os filtros interceptam os dados que o WordPress envia aos navegadores de internet. Eles modificam essas informa&ccedil;&otilde;es de acordo com a fun&ccedil;&atilde;o determinada e ent&atilde;o as apresentam aos dispositivos dos usu&aacute;rios. Para te ajudar a entender melhor, confira este snippet:<\/p><pre class=\"wp-block-preformatted\">\/\/ Specify the filter and the callback function\n   add_filter( 'example_filter', 'example_callback' );\n   \/\/ Define the callback function\n   function example_callback( $example ) {\n      \/\/ alter $example by concatenating on it\n      $example . &lsquo; add a text at the end &rsquo;;\n      return $example;\n   }<\/pre><p class=\"wp-block-paragraph\">Agora vamos explicar cada linha de c&oacute;digo do exemplo:<\/p><ol class=\"wp-block-list\">\n<li>Configure um filtro utilizando a fun&ccedil;&atilde;o <strong>add_filter <\/strong>&ndash; que ir&aacute; modificar os dados. No nosso exemplo, o nome do filtro &eacute; <strong>example_filter<\/strong>.<\/li>\n\n\n\n<li>Defina a <a href=\"https:\/\/developer.mozilla.org\/pt-BR\/docs\/Glossary\/Callback_function\" target=\"_blank\" rel=\"noopener\"><strong>fun&ccedil;&atilde;o de callback<\/strong><\/a> que ir&aacute; rodar quando o WordPress encontrar tal filtro. No exemplo acima, utilizamos a fun&ccedil;&atilde;o <strong>example<\/strong>_<strong>callback<\/strong>.<\/li>\n\n\n\n<li>Especifique como a fun&ccedil;&atilde;o callback dever&aacute; modificar os dados que o argumento <strong>$example <\/strong>representa. No snippet de exemplo, n&oacute;s utilizamos o ponto final para concatenar o argumento com uma frase.&nbsp;<\/li>\n\n\n\n<li>Atrav&eacute;s do m&eacute;todo <strong>return<\/strong>, voc&ecirc; far&aacute; a exibi&ccedil;&atilde;o dos dados modificados no navegador de internet dos usu&aacute;rios.&nbsp;<\/li>\n<\/ol><p class=\"wp-block-paragraph\">Para aplicar um filter hook em seu site WordPress, escreva o c&oacute;digo indicado no arquivo <strong>functions.php <\/strong>contido na pasta do tema que est&aacute; ativo em seu site. Caso voc&ecirc; utilize o servi&ccedil;o de <a href=\"\/br\/hospedagem-wordpress\"><strong>hospedagem WordPress da Hostinger<\/strong><\/a>, basta acessar o <strong>Gerenciador de Arquivos<\/strong> no seu painel de controle e navegar at&eacute; o diret&oacute;rio <strong>public_html\/wp-content\/themes\/pastadoseutema<\/strong>.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"1024\" height=\"554\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-33.png\/public\" alt=\"abrindo o arquivo functions.php no gerenciador de arquivos da hostinger\" class=\"wp-image-42931\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-33.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-33.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-33.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-33.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><p class=\"wp-block-paragraph\">Al&eacute;m disso, recomendamos que voc&ecirc; tamb&eacute;m adicione o c&oacute;digo no tema-filho, ou <a href=\"\/br\/tutoriais\/como-criar-o-tema-filho-wordpress\/\"><strong>child theme<\/strong><\/a>, para evitar que ele desapare&ccedil;a depois de alguma atualiza&ccedil;&atilde;o. Alternativamente, voc&ecirc; pode criar um arquivo separado para os hoooks de filtro na pasta raiz do tema, e ent&atilde;o escrever o seguinte c&oacute;digo no arquivo functions.php:<\/p><pre class=\"wp-block-preformatted\">include _once( get_template_directory(), &lsquo;\/nomedoarquivo.php&rsquo;:&rsquo;<\/pre><p class=\"wp-block-paragraph\">Se voc&ecirc; n&atilde;o consegue acessar o diret&oacute;rio raiz do seu tema, <a href=\"\/br\/tutoriais\/como-instalar-plugins-wordpress\/\"><strong>instale um plugin<\/strong><\/a> para poder adicionar o c&oacute;digo personalizado diretamente a partir do seu painel de administra&ccedil;&atilde;o do WordPress. Um plugin popular para essa tarefa &eacute; o <a href=\"https:\/\/br.wordpress.org\/plugins\/code-snippets\/\" target=\"_blank\" rel=\"noopener\"><strong>Code Snippets<\/strong><\/a>.<\/p><p>\n\n\n<div class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                <strong>Importante! <\/strong>Modificar o arquivo <strong>functions.php<\/strong> do tema pode levar a erros no seu site ou deix&aacute;-lo inacess&iacute;vel. Para evitar problemas, <a href=\"\/br\/tutoriais\/como-fazer-backup-do-seu-site-wordpress\/\"><strong>fa&ccedil;a um backup<\/strong><\/a> antes de seguir com o processo.\n            <\/p><\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-parametros-do-wordpress-add-filter-nbsp\"><strong>Par&acirc;metros do WordPress add_filter&nbsp;<\/strong><\/h2><p class=\"wp-block-paragraph\">A fun&ccedil;&atilde;o WordPress <strong>add_filter <\/strong>possui quatro par&acirc;metros. S&atilde;o eles:<\/p><ul class=\"wp-block-list\">\n<li><strong>Nome do hook<\/strong>.<strong> <\/strong>O nome do filtro ao qual voc&ecirc; deseja &ldquo;enganchar&rdquo; a fun&ccedil;&atilde;o callback.<\/li>\n\n\n\n<li><strong>Fun&ccedil;&atilde;o Callback<\/strong>. A <em>callback function<\/em> que ser&aacute; rodada quando o filtro for aplicado.<\/li>\n\n\n\n<li><strong>Prioridade<\/strong>. Par&acirc;metro opcional que especifica a ordem de execu&ccedil;&atilde;o das fun&ccedil;&otilde;es associadas a um filtro. O valor padr&atilde;o &eacute; <strong>10<\/strong>, sendo que quanto menor o n&uacute;mero, antes tal fun&ccedil;&atilde;o ser&aacute; executada.<\/li>\n\n\n\n<li><strong>Argumentos aceitos<\/strong>. O n&uacute;mero de argumentos passados &agrave;s fun&ccedil;&otilde;es do hook. Esse par&acirc;metro tamb&eacute;m &eacute; opcional e possui valor padr&atilde;o de <strong>1<\/strong>.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">A sintaxe da fun&ccedil;&atilde;o e seus par&acirc;metros &eacute; a seguinte:<\/p><pre class=\"wp-block-preformatted\">add_filter( hook_name, callback_function, priority=1, \n   accepted_arguments=1);<\/pre><h2 class=\"wp-block-heading\" id=\"h-exemplos-do-add-filter-no-wordpress\"><strong>Exemplos do add_filter no WordPress<\/strong><\/h2><p class=\"wp-block-paragraph\">Os hooks WordPress de filtragem permitem que os usu&aacute;rios alterem ou adicionem m&uacute;ltiplas novas fun&ccedil;&otilde;es aos seus sites. Para ilustrar melhor essas possibilidades, a pr&oacute;xima se&ccedil;&atilde;o vai apresentar alguns exemplos de snippets de c&oacute;digos.<\/p><h3 class=\"wp-block-heading\" id=\"h-modificando-o-comprimento-dos-trechos-de-previa-dos-posts-nbsp\"><strong>Modificando o Comprimento dos Trechos de Pr&eacute;via dos Posts&nbsp;<\/strong><\/h3><p class=\"wp-block-paragraph\">Um exemplo de uso bastante comum de um filtro WordPress &eacute; aquele que altera o comprimento padr&atilde;o do fragmento de texto exibido como pr&eacute;via de uma publica&ccedil;&atilde;o. Abaixo voc&ecirc; pode visualizar o c&oacute;digo para tal objetivo:<\/p><pre class=\"wp-block-preformatted\"> add_filter( &lsquo;excerpt_length&rsquo;, &lsquo;change_length&rsquo; );\n   function change_length( $length )\n   {\n      \/\/ change the default excerpt length\n      return 20;\n   }<\/pre><p class=\"wp-block-paragraph\">No snippet acima, n&oacute;s criamos uma fun&ccedil;&atilde;o que altera o comprimento do trecho de descri&ccedil;&atilde;o &ndash; representado pelo argumento <strong>$length<\/strong>. Ent&atilde;o, fizemos essa fun&ccedil;&atilde;o se &ldquo;enganchar&rdquo; ao filtro <strong>excerpt_length<\/strong>.<\/p><p class=\"wp-block-paragraph\">Quando os dados de exibi&ccedil;&atilde;o da miniatura que descreve a publica&ccedil;&atilde;o passam pelo filtro, a fun&ccedil;&atilde;o ir&aacute; rodar e alterar o comprimento do fragmento textual de acordo com o definido. Depois, o m&eacute;todo <strong>return<\/strong> ir&aacute; limitar o tamanho para <strong>20<\/strong>, de acordo com o exemplo, e enviar esses dados aos navegadores dos usu&aacute;rios.&nbsp;<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"1024\" height=\"643\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-32.png\/public\" alt=\"modificando o tamanho padr&atilde;o das pr&eacute;vias das postagens de blog no wordpress\" class=\"wp-image-42930\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-32.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-32.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-32.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-32.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><p>\n\n<div class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                <strong>Importante! <\/strong>Em alguns temas do WordPress themes, voc&ecirc; tamb&eacute;m precisar&aacute; editar o arquivo <strong>content.php<\/strong> para aplicar esse filtro. Voc&ecirc; pode conferir nosso tutorial sobre <a href=\"\/br\/tutoriais\/the_excerpt\/\"><strong>como Usar o Comando the_excerpt<\/strong><\/a>.&nbsp;\n            <\/p><\/div>\n\n\n\n<\/p><h3 class=\"wp-block-heading\" id=\"h-modificando-o-conteudo-de-um-post-nbsp\"><strong>Modificando o Conte&uacute;do de um Post&nbsp;<\/strong><\/h3><p class=\"wp-block-paragraph\">Outro uso comum da fun&ccedil;&atilde;o <strong>add_filter <\/strong>est&aacute; relacionado com a a&ccedil;&atilde;o de adicionar novos conte&uacute;dos &agrave;s publica&ccedil;&otilde;es do site. No exemplo abaixo, o c&oacute;digo adiciona uma esp&eacute;cie de termo de responsabilidade no rodap&eacute; de todos os posts do site:<\/p><pre class=\"wp-block-preformatted\"> add_filter( &lsquo;the_content&rsquo;, &lsquo;add_disclaimer&rsquo; );\n   function add_disclaimer( $content )\n   {\n      \/\/ concatenate the content to modify it\n      return $content . \n      &ldquo;&lt;br&gt;&lt;center&gt;&lt;strong&gt;All writings and opinions are my own&ldquo;;\n   }<\/pre><p class=\"wp-block-paragraph\">O snippet do exemplo possui o filtro <strong>the_content<\/strong>, que se &ldquo;engancha&rdquo; &agrave; fun&ccedil;&atilde;o callback <strong>add_disclaimer<\/strong>. Quando houver o comando para o filtro rodar, essa fun&ccedil;&atilde;o ir&aacute; modificar o conte&uacute;do representado pelo argumento <strong>$content <\/strong>ao vincul&aacute;-lo com a mensagem de aviso determinada pelo exemplo (no nosso caso: <strong>Todas as declara&ccedil;&otilde;es e opini&otilde;es s&atilde;o de autoria pr&oacute;pria<\/strong>)<\/p><p class=\"wp-block-paragraph\">O c&oacute;digo ent&atilde;o ir&aacute; encaminhar o conte&uacute;do modificado aos navegadores dos usu&aacute;rios, exibindo o <em>disclaimer<\/em> ao final do post.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"1024\" height=\"351\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-34.png\/public\" alt=\"adicionando conte&uacute;do ao final de cada postagem no wordpress com o comando add_filter\" class=\"wp-image-42932\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-34.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-34.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-34.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-34.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><h3 class=\"wp-block-heading\" id=\"h-exibindo-imagens-em-uma-categoria-de-post-especifica\"><strong>Exibindo Imagens em uma Categoria de Post Espec&iacute;fica<\/strong><\/h3><p class=\"wp-block-paragraph\">O hook WordPress de filtro permite que voc&ecirc; personalize publica&ccedil;&otilde;es que tenham um ID ou categoria espec&iacute;fica. No snippet apresentado abaixo, n&oacute;s adicionamos um &ldquo;&iacute;cone&rdquo; a cada post que est&aacute; classificado na categoria &ldquo;premium&rdquo; do nosso site de exemplo:<\/p><pre class=\"wp-block-preformatted\">add_filter( 'the_content', 'content_filter' );\n   function content_filter( $content ) \n   {\n      \/\/ condition where the function applies\n      if ( in_category('premium') )\n      $content = sprintf(\n         '&lt;img class=\"premium-icon\"    \n         src=\"%s\/directory\/filename.png\"alt=\"Premium Content Icon\"  \n         title=\"\" \/&gt;%s', get_bloginfo( 'stylesheet_directory' ), \n         $content);\n      return $content;\n   }<\/pre><p class=\"wp-block-paragraph\">No c&oacute;digo acima, criamos o filtro <strong>the_content <\/strong>e utilizamos o hook para vincular o filtro &agrave; fun&ccedil;&atilde;o callback <strong>wpb_content_filter<\/strong>n. A fun&ccedil;&atilde;o, por sua vez, especifica as condi&ccedil;&otilde;es espec&iacute;ficas que devem ser cumpridas para que o filtro seja aplicado.<\/p><p class=\"wp-block-paragraph\">No caso acima, se um post pertencer &agrave; categoria de publica&ccedil;&atilde;o <strong>premium<\/strong>, a fun&ccedil;&atilde;o de filtragem ir&aacute; alterar o conte&uacute;do de tal publica&ccedil;&atilde;o e adicionar a ele a imagem do &iacute;cone que foi determinado.&nbsp;<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"1024\" height=\"680\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-35.png\/public\" alt=\"exemplo de post premium criado com a fun&ccedil;&atilde;o add_filter do wordpress\" class=\"wp-image-42933\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-35.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-35.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-35.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-35.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><h3 class=\"wp-block-heading\" id=\"h-alterando-o-numero-de-produtos-exibidos-na-pagina\"><strong>Alterando o N&uacute;mero de Produtos Exibidos na P&aacute;gina<\/strong><\/h3><p class=\"wp-block-paragraph\">Um filtro tamb&eacute;m permite que voc&ecirc; modifique um plugin de eCommerce para personalizar sua loja virtual. No exemplo abaixo, criamos um c&oacute;digo que altera a quantidade de produtos a serem exibidos na p&aacute;gina do seu cat&aacute;logo por meio do plugin WooCommerce:<\/p><pre class=\"wp-block-preformatted\">add_filter('storefront_products_per_page','alter_sf_products_per_page' );\n   function alter_sf_products_per_page() \n   {\n      \/\/ change the default value\n      return 3 ;\n   }<\/pre><p class=\"wp-block-paragraph\">No snippet de exemplo, n&oacute;s criamos o filtro personalizado <strong>storefront_products_per_page <\/strong>(produtos da loja por p&aacute;gina) e utilizamos o hook para conectar esse filtro &agrave; fun&ccedil;&atilde;o de callback <strong>alter_sf_products_per_page <\/strong>(alterar produtos da loja por p&aacute;gina). Quando os dados do site passarem pelo hook, o filtro criado ir&aacute; rodar a fun&ccedil;&atilde;o que modifica a quantidade padr&atilde;o de produtos exibidos na p&aacute;gina, indo de <strong>12<\/strong> para <strong>3<\/strong>. &Eacute; esse novo n&uacute;mero que ser&aacute; apresentado nos navegadores dos usu&aacute;rios.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"1024\" height=\"584\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-36.png\/public\" alt=\"alterando a quantidade de produtos exibidos numa p&aacute;gina do wordpress com a fun&ccedil;&atilde;o add_filter\" class=\"wp-image-42934\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-36.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-36.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-36.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/03\/image-36.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><p>\n\n        <div class=\"protip\">\n            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    Sugest&atilde;o de Leitura                <\/p>\n            <\/div>\n            <p class=\"protip__content\">Aprenda mais sobre as <a href=\"\/br\/tutoriais\/?s=fun%C3%A7%C3%A3o+wordpress\"><strong>Fun&ccedil;&otilde;es WordPress<\/strong><\/a> com os tutoriais da Hostinger.<\/p>\n                    <\/div>\n        \n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-outros-filtros-populares-do-wordpress\"><strong>Outros Filtros Populares do WordPress<\/strong><\/h2><p class=\"wp-block-paragraph\">Al&eacute;m da <strong>add_filter<\/strong>, h&aacute; outras fun&ccedil;&otilde;es do WordPress que os desenvolvedores e administradores de sites podem utilizar com o hook de filtro. Nesta se&ccedil;&atilde;o apresentamos algumas delas:<\/p><p class=\"wp-block-paragraph\"><strong>remove_filter()<\/strong><\/p><p class=\"wp-block-paragraph\">Essa fun&ccedil;&atilde;o remove uma fun&ccedil;&atilde;o &ldquo;enganchada&rdquo; a um filtro espec&iacute;fico. Programadores tendem a utilizar esse elemento para deletar fun&ccedil;&otilde;es padr&atilde;o do WordPress sem precisar remover todo o c&oacute;digo. Abaixo exemplificamos a sintaxe para tal objetivo:<\/p><pre class=\"wp-block-preformatted\">remove_filter( hook_name, callback_function, priority = 10 );<\/pre><p class=\"wp-block-paragraph\"><strong>doing_filter()<\/strong><\/p><p class=\"wp-block-paragraph\">Essa fun&ccedil;&atilde;o verifica se h&aacute; alguma outra fun&ccedil;&atilde;o sendo executada atualmente. Ela seleciona um nome de hook como par&acirc;metro e retorna um valor de verdadeiro ou falso (<strong>true <\/strong>or <strong>false<\/strong>). A sintaxe para estes casos &eacute; a seguinte:<\/p><pre class=\"wp-block-preformatted\">if doing_filter( 'hook_name&rsquo; )\n{ \n\/\/ execute a script if the filter is running \n};<\/pre><p class=\"wp-block-paragraph\"><strong>has_filter()<\/strong><\/p><p class=\"wp-block-paragraph\">A fun&ccedil;&atilde;o <strong>has_filter <\/strong>verifica se um filtro foi aplicado a um hook da maneira correta. Ela seleciona um nome de filtro como primeiro par&acirc;metro e a fun&ccedil;&atilde;o callback como um segundo par&acirc;metro opcional.&nbsp;<\/p><p class=\"wp-block-paragraph\">Para conferir a situa&ccedil;&atilde;o de uma fun&ccedil;&atilde;o espec&iacute;fica em um hook, voc&ecirc; deve incluir este segundo par&acirc;metro. Caso contr&aacute;rio, a fun&ccedil;&atilde;o&nbsp; <strong>has_filter <\/strong>vai retornar o valor <strong>true<\/strong> indicando que qualquer fun&ccedil;&atilde;o est&aacute; &ldquo;enganchada&rdquo; ao filtro. A sintaxe desse caso se assemelha a esta:<\/p><pre class=\"wp-block-preformatted\">has_filter( &lsquo;hook_name&rsquo;, &lsquo;callback_function&rsquo; );<\/pre><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"\/br\/hospedagem-wordpress\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-44638\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2024\/06\/BR-New-WP_in-text-banner.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div><h2 class=\"wp-block-heading\" id=\"h-conclusao\"><strong>Conclus&atilde;o<\/strong><\/h2><p class=\"wp-block-paragraph\">Um filtro &eacute; um hook WordPress utilizado para modificar dados antes deles serem exibidos no site. Desenvolvedores web utilizam esses filtros para personalizar plugins, temas ou para adicionar funcionalidades extras aos seus sites.&nbsp;<\/p><p class=\"wp-block-paragraph\">O hook de filtragem vai interceptar os dados que o WordPress encaminha aos navegadores, alterando tais informa&ccedil;&otilde;es de acordo com o que voc&ecirc; determinar. Ent&atilde;o, os dados modificados de acordo com as suas escolhas ser&atilde;o exibidos aos visitantes. Para configurar um filtro, adicione a fun&ccedil;&atilde;o <strong>add_filter <\/strong>com o nome do gancho (hook name) e a fun&ccedil;&atilde;o callback como par&acirc;metros no arquivo <strong>functions.php <\/strong>do seu tema WordPress.<\/p><p class=\"wp-block-paragraph\">Os exemplos de casos em que voc&ecirc; pode utilizar esse elemento incluem aqueles em que se pretende alterar o comprimento da pr&eacute;via de uma publica&ccedil;&atilde;o e adicionar uma declara&ccedil;&atilde;o aos posts de um blog. Al&eacute;m da fun&ccedil;&atilde;o <strong>add_filter<\/strong>, outras fun&ccedil;&otilde;es incluem <strong>remove_filter<\/strong>, <strong>doing_filter<\/strong> e <strong>has_filter<\/strong>.<\/p><p class=\"wp-block-paragraph\">Caso voc&ecirc; ainda tenha alguma d&uacute;vida, ou queira fazer um coment&aacute;rio sobre o assunto, entre em contato no campo disponibilizado logo abaixo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Um filtro WordPress &eacute; um hook que opera sobre dados internos antes de exibi-los no navegador de internet. Para criar um filtro, basta adicionar a fun&ccedil;&atilde;o add_filter no arquivo&nbsp; functions.php do seu site. No universo do desenvolvimento de sites WordPress, os usu&aacute;rios utilizam esse filtro para modificar algum plugin, tema ou funcionalidade espec&iacute;fica do site. [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/br\/tutoriais\/add-filter-wordpress\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":237,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"","rank_math_description":"Descubra como os filtros do WordPress podem transformar seu site. Aprenda a utilizar o add_filter para personaliza\u00e7\u00e3o e melhorias!","rank_math_focus_keyword":"add_filter wordpress","footnotes":""},"categories":[4911],"tags":[],"class_list":["post-42929","post","type-post","status-publish","format-standard","hentry","category-wordpress"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/wordpress-add-filter\/","default":1},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/add-filter-wordpress\/","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/add-filter-wordpress\/","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/add-filter-wordpress\/","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/cara-menggunakan-wordpress-add_filter\/","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/what-are-filters-in-wordpress-and-how-to-use-wordpress-add_filter\/","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/what-are-filters-in-wordpress-and-how-to-use-wordpress-add_filter\/","default":0},{"locale":"en-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/wordpress-add-filter\/","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/wordpress-add-filter\/","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/wordpress-add-filter\/","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/wordpress-add-filter\/","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/wordpress-add-filter\/","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/add-filter-wordpress\/","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/add-filter-wordpress\/","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/add-filter-wordpress\/","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/add-filter-wordpress\/","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/42929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/users\/237"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/comments?post=42929"}],"version-history":[{"count":1,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/42929\/revisions"}],"predecessor-version":[{"id":42935,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/42929\/revisions\/42935"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media?parent=42929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/categories?post=42929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/tags?post=42929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}