{"id":37880,"date":"2024-02-15T00:37:48","date_gmt":"2024-02-14T23:37:48","guid":{"rendered":"\/tutoriales\/?p=37880"},"modified":"2025-02-04T14:59:45","modified_gmt":"2025-02-04T13:59:45","slug":"add-filter-wordpress","status":"publish","type":"post","link":"\/es\/tutoriales\/add-filter-wordpress\/","title":{"rendered":"\u00bfQu\u00e9 son los filtros y  c\u00f3mo usar  add_filter en WordPress?"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Un filtro de WordPress es un hook que manipula datos internos antes de que se muestren en el navegador. Para crear un filtro, a&ntilde;ade la funci&oacute;n <strong>add_filter<\/strong> en el archivo <strong>functions.php<\/strong> de tu sitio web.<\/p><p class=\"wp-block-paragraph\">En el desarrollo de WordPress, los usuarios utilizan este filtro para modificar un plugin, un tema o una funcionalidad espec&iacute;fica del sitio web. Por ejemplo, puedes cambiar la longitud del extracto de las entradas de tu sitio web o a&ntilde;adir una nota de pie de p&aacute;gina a los art&iacute;culos.<\/p><p class=\"wp-block-paragraph\">En este tutorial de WordPress, explicaremos c&oacute;mo usar la funci&oacute;n <strong>add_filter<\/strong> para crear un hook de filtro. Tambi&eacute;n exploraremos los par&aacute;metros de la funci&oacute;n y proporcionaremos ejemplos de casos de uso comunes.<\/p><p class=\"wp-block-paragraph\"><\/p><p class=\"wp-block-paragraph\"><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                   &iquest;Qu&eacute; es un filtro de WordPress?\n                <\/p>\n            <\/div>\n            <p class=\"protip__content\">Un filtro de WordPress es un hook que modifica los datos antes de que sean devueltos a la base de datos y mostrados a los usuarios. Como resultado, puedes personalizar plugins, temas o la funcionalidad de sitios web sin alterar los archivos del n&uacute;cleo de WordPress.<br><br>Por ejemplo, a&ntilde;adir un pie de p&aacute;gina a todas las entradas del sitio web o cambiar la longitud de su extracto. Existen cuatro funciones de hook de filtro comunes: <strong>add_filter, remove_filter, has_filter<\/strong> y <strong>doing_filter<\/strong>.<\/p><\/div><\/p><h2 class=\"wp-block-heading\" id=\"h-como-funcionan-los-filtros-de-wordpress\">C&oacute;mo funcionan los filtros de WordPress<\/h2><p class=\"wp-block-paragraph\">Los filtros interceptan los datos que pasa WordPress. Los modifican bas&aacute;ndose en la funci&oacute;n dada y los muestran a los navegadores web de los usuarios. Para ayudarte a entender, mira este fragmento:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ 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\">He aqu&iacute; la explicaci&oacute;n del ejemplo:<\/p><ol class=\"wp-block-list\">\n<li>Establece un filtro utilizando la funci&oacute;n <strong>add_filter<\/strong> que modificar&aacute; los datos. En nuestro caso, el nombre del filtro es <strong>example_filter<\/strong>.<\/li>\n\n\n\n<li>Define la funci&oacute;n callback que se ejecutar&aacute; cuando WordPress encuentre el filtro, concretamente <strong>example_callback<\/strong>.<\/li>\n\n\n\n<li>Especifica c&oacute;mo la funci&oacute;n callback modificar&aacute; los datos, que el argumento <strong>$ejemplo<\/strong> representa. En el fragmento, utilizaremos el punto final para concatenar con una frase al final.<\/li>\n\n\n\n<li>Muestra los datos modificados al navegador web del usuario utilizando el m&eacute;todo <strong>return<\/strong>.<\/li>\n<\/ol><p class=\"wp-block-paragraph\">Para aplicar un hook de filtro a tu sitio web WordPress, escribe el c&oacute;digo en el archivo <strong>functions.php<\/strong> de tu tema activo. Si utilizas el servicio de <a href=\"\/es\/hosting-wordpress\">alojamiento WordPress<\/a><strong> <\/strong>de Hostinger, abre el <strong>Administrador de archivos<\/strong> y ve a la carpeta <strong>public_html\/wp-content\/themes\/yourthemefolder.<\/strong><\/p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"451\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Functions.png\/w=1024,h=1024,fit=scale-down\" alt=\"Archivo Functions.php del Administrador de archivos \" class=\"wp-image-37883\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Functions.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Functions.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Functions.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Functions.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p class=\"wp-block-paragraph\">Adem&aacute;s, te recomendamos que a&ntilde;adas el c&oacute;digo al archivo de tu <a href=\"\/es\/tutoriales\/utilizar-child-theme\/\">tema hijo<\/a> para evitar que desaparezca tras una actualizaci&oacute;n. Como alternativa, crea un archivo independiente para los hooks de filtro en la carpeta ra&iacute;z del tema y escribe el siguiente c&oacute;digo en el archivo functions.php para activarlo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">include _once( get_template_directory(), &lsquo;\/yourfilename.php&rsquo;:&rsquo;<\/pre><p class=\"wp-block-paragraph\">Si no puedes acceder a la carpeta ra&iacute;z del tema, <a href=\"\/es\/tutoriales\/plugins-en-wordpress-gratis\/\">instala un plugin<\/a> para a&ntilde;adir el c&oacute;digo personalizado directamente desde el panel de administraci&oacute;n de WordPress. Un plugin popular para esta tarea es <a href=\"https:\/\/es.wordpress.org\/plugins\/code-snippets\/\" target=\"_blank\" rel=\"noreferrer noopener\">Code Snippets<\/a>.<\/p><p class=\"wp-block-paragraph\"><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>&iexcl;Importante!<\/strong>&nbsp;Modificar el archivo <strong>functions.php<\/strong> puede provocar un error o un sitio web inaccesible. Para evitarlo, <strong>crea una copia de seguridad<\/strong> antes de proceder.\n            <\/p><\/div><\/p><h2 class=\"wp-block-heading\" id=\"h-parametros-de-add-filter-de-wordpress\">Par&aacute;metros de add_filter de WordPress<\/h2><p class=\"wp-block-paragraph\">La funci&oacute;n <strong>add_filter<\/strong> de WordPress tiene cuatro par&aacute;metros. Aqu&iacute; est&aacute; cada uno de ellos:<\/p><ul class=\"wp-block-list\">\n<li><strong>Nombre del hook: <\/strong>El nombre del filtro al que quieres enganchar las funciones callback.<\/li>\n\n\n\n<li><strong>Funci&oacute;n callback: <\/strong>La funci&oacute;n callback que se ejecutar&aacute; cuando se aplique el filtro.<\/li>\n\n\n\n<li><strong>Prioridad: <\/strong>Par&aacute;metro opcional que especifica el orden de ejecuci&oacute;n de las funciones asociadas a un filtro. El valor por defecto es 10, y cuanto menor sea el n&uacute;mero, antes se ejecutar&aacute;.<\/li>\n\n\n\n<li><strong>Argumentos aceptados: <\/strong>El n&uacute;mero de argumentos pasados a las funciones enganchadas. Este par&aacute;metro es opcional y tiene el valor predeterminado de<strong> 1.<\/strong><\/li>\n<\/ul><p class=\"wp-block-paragraph\">La sintaxis de la funci&oacute;n y los par&aacute;metros es la siguiente:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">add_filter( hook_name, callback_function, priority=1, \n   accepted_arguments=1);<\/pre><h2 class=\"wp-block-heading\" id=\"h-ejemplos-de-add-filter-en-wordpress\">Ejemplos de add_filter en WordPress<\/h2><p class=\"wp-block-paragraph\">Los filtros de WordPress permiten a los usuarios cambiar o a&ntilde;adir nuevas funciones a sus sitios web. Para tu referencia, esta secci&oacute;n explorar&aacute; algunos fragmentos de c&oacute;digo de ejemplo.<\/p><h3 class=\"wp-block-heading\" id=\"h-cambiar-la-longitud-del-extracto-de-un-post\">Cambiar la longitud del extracto de un post<\/h3><p class=\"wp-block-paragraph\">Un ejemplo sencillo de uso de un filtro de WordPress es cambiar la longitud del extracto de las entradas por defecto. Aqu&iacute; est&aacute; el fragmento de c&oacute;digo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">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\">En el fragmento, creamos una funci&oacute;n que cambia la longitud del extracto de la entrada, que representa el argumento <strong>$length<\/strong>. Luego, enganchamos la funci&oacute;n al filtro <strong>excerpt_length<\/strong>.<\/p><p class=\"wp-block-paragraph\">Cuando los datos pasen por el filtro, la funci&oacute;n se ejecutar&aacute; y los modificar&aacute; en consecuencia. A continuaci&oacute;n, el m&eacute;todo <strong>return<\/strong> limitar&aacute; la longitud del extracto a <strong>20<\/strong> y se lo pasar&aacute; al usuario.<\/p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"664\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Ejemplo-del-filtro.png\/w=1024,h=1024,fit=scale-down\" alt=\"Ejemplo de uso de un filtro de WordPress \" class=\"wp-image-37887\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Ejemplo-del-filtro.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Ejemplo-del-filtro.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Ejemplo-del-filtro.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Ejemplo-del-filtro.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p class=\"wp-block-paragraph\"><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>&iexcl;Importante!<\/strong>&nbsp;Para algunos temas de WordPress, tambi&eacute;n debes editar el archivo <strong>content.php<\/strong> para aplicar el filtro excerpt. Lee nuestro tutorial sobre <a href=\"\/es\/tutoriales\/longitud-excerpt-wordpress\/\">c&oacute;mo cambiar la longitud del extracto de WordPress<\/a> para obtener m&aacute;s informaci&oacute;n al respecto.\n            <\/p><\/div><\/p><h3 class=\"wp-block-heading\" id=\"h-modificar-el-contenido-de-las-entradas\">Modificar el contenido de las entradas<\/h3><p class=\"wp-block-paragraph\">Un uso com&uacute;n de la funci&oacute;n <strong>add_filter<\/strong> es a&ntilde;adir nuevo contenido a las entradas de tu sitio web. Por ejemplo, aqu&iacute; hay un fragmento de c&oacute;digo de ejemplo que coloca un descargo de responsabilidad en la parte inferior de cada entrada del sitio web:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"> 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;Todos los escritos y opiniones son m&iacute;os&ldquo;;\n   }<\/pre><p class=\"wp-block-paragraph\">El ejemplo tiene el filtro <strong>the_content<\/strong>, que se conecta a la funci&oacute;n callback <strong>add_disclaimer<\/strong>. Cuando se ejecute el filtro, esta funci&oacute;n modificar&aacute; <strong>$content<\/strong> concaten&aacute;ndolo con el mensaje<strong> Todos los escritos y opiniones son propios.<\/strong><\/p><p class=\"wp-block-paragraph\">El c&oacute;digo devolver&aacute; a los navegadores el contenido modificado con la cl&aacute;usula de exenci&oacute;n de responsabilidad al final.<\/p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"415\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Mensajes-propios.png\/w=1024,h=1024,fit=scale-down\" alt=\"Ejemplo de uso com&uacute;n de add_filter\" class=\"wp-image-37885\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Mensajes-propios.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Mensajes-propios.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Mensajes-propios.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Mensajes-propios.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><h3 class=\"wp-block-heading\" id=\"h-mostrar-imagen-a-una-categoria-especifica\">Mostrar imagen a una categor&iacute;a espec&iacute;fica<\/h3><p class=\"wp-block-paragraph\">Los hooks de filtro de WordPress permiten personalizar entradas con un ID o categor&iacute;a espec&iacute;ficos. En el siguiente fragmento, hemos a&ntilde;adido un icono a cada entrada que pertenece a la categor&iacute;a premium:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">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\">En el ejemplo, creamos el filtro <strong>the_content<\/strong> y lo enganchamos con la funci&oacute;n callback <strong>wpb_content_filter<\/strong>. La funci&oacute;n especifica la condici&oacute;n en la que se aplicar&aacute; el filtro.<\/p><p class=\"wp-block-paragraph\">En este caso, si el post pertenece a la categor&iacute;a <strong>premium<\/strong>, la funci&oacute;n de filtro alterar&aacute; el contenido a&ntilde;adi&eacute;ndole una imagen.<\/p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"839\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Imagen-de-post.png\/w=1024,h=1024,fit=scale-down\" alt=\"Ejemplo de Mostrar imagen a una categor&iacute;a espec&iacute;fica en WP\" class=\"wp-image-37886\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Imagen-de-post.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Imagen-de-post.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Imagen-de-post.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Imagen-de-post.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><h3 class=\"wp-block-heading\" id=\"h-cambiar-el-numero-de-productos-mostrados\">Cambiar el n&uacute;mero de productos mostrados<\/h3><p class=\"wp-block-paragraph\">Un filtro tambi&eacute;n te permite modificar un plugin de eCommerce para personalizar tu tienda online. Por ejemplo, aqu&iacute; tienes un c&oacute;digo personalizado que cambia el n&uacute;mero de productos mostrados en el plugin WooCommerce:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">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\">En el fragmento, creamos el filtro personalizado <strong>storefront_products_per_page<\/strong> y lo enganchamos con la funci&oacute;n <strong>alter_sf_products_per_page<\/strong>. Cuando los datos pasen por &eacute;l, el filtro llamar&aacute; a la funci&oacute;n para cambiar el valor predeterminado de <strong>12<\/strong> a <strong>3<\/strong> y mostrarlo en los navegadores de los usuarios.<\/p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"603\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Numero-de-productos.png\/w=1024,h=1024,fit=scale-down\" alt=\"Filtro de n&uacute;mero de productos mostrados en WP\" class=\"wp-image-37888\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Numero-de-productos.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Numero-de-productos.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Numero-de-productos.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/02\/Numero-de-productos.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><h2 class=\"wp-block-heading\" id=\"h-otros-filtros-comunes-de-wordpress\">Otros filtros comunes de WordPress<\/h2><p class=\"wp-block-paragraph\">Adem&aacute;s de <strong>add_filter<\/strong>, existen otras funciones que los desarrolladores pueden utilizar con el filtro hook.<\/p><p class=\"wp-block-paragraph\"><strong>remove_filter()<\/strong><\/p><p class=\"wp-block-paragraph\">Esta funci&oacute;n elimina una funci&oacute;n enganchada a un filtro espec&iacute;fico. Los desarrolladores web suelen utilizarla para eliminar la funci&oacute;n predeterminada de WordPress sin eliminar el c&oacute;digo por completo. Esta es la sintaxis:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">remove_filter( hook_name, callback_function, priority = 10 );<\/pre><p class=\"wp-block-paragraph\"><strong>doing_filter()<\/strong><\/p><p class=\"wp-block-paragraph\">Esta funci&oacute;n comprueba si se est&aacute; ejecutando otra funci&oacute;n. Toma un nombre de hook como par&aacute;metro y devuelve un valor <strong>verdadero<\/strong> o <strong>falso<\/strong>. La sintaxis es la siguiente:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">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\">La funci&oacute;n <strong>has_filter<\/strong> verifica si se ha aplicado correctamente un filtro a un hook. Toma un nombre de filtro como primer par&aacute;metro y la funci&oacute;n callback como segundo par&aacute;metro opcional.<\/p><p class=\"wp-block-paragraph\">Para comprobar una funci&oacute;n espec&iacute;fica, debes incluir el segundo par&aacute;metro. En caso contrario, devolver&aacute; <strong>true<\/strong> para indicar que cualquier funci&oacute;n est&aacute; enganchada al filtro. La sintaxis de la funci&oacute;n es la siguiente:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">has_filter( &lsquo;hook_name&rsquo;, &lsquo;callback_function&rsquo; );<\/pre><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"\/es\/hosting-wordpress\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/06\/ES-New-WP_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-40615\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/06\/ES-New-WP_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/06\/ES-New-WP_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/06\/ES-New-WP_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2024\/06\/ES-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-conclusion\">Conclusi&oacute;n<\/h2><p class=\"wp-block-paragraph\">Un filtro es un hook de WordPress para modificar datos antes de mostrarlos en el sitio web. Los desarrolladores web lo utilizan para personalizar un plugin o un tema y a&ntilde;adir funcionalidades extra a sus sitios web.<\/p><p class=\"wp-block-paragraph\">El hook de filtro interceptar&aacute; los datos que WordPress pase, los alterar&aacute; en funci&oacute;n de tus necesidades y los mostrar&aacute; a los navegadores de los visitantes. Para establecer un filtro, escribe la funci&oacute;n <strong>add_filter<\/strong> con el nombre del hook y la funci&oacute;n callback como par&aacute;metros en el archivo <strong>functions.php<\/strong> de tu tema.<\/p><p class=\"wp-block-paragraph\">Los ejemplos de uso del filtro incluyen cambiar la longitud del extracto de un art&iacute;culo y a&ntilde;adir un descargo de responsabilidad a las entradas de un sitio web. Adem&aacute;s de <strong>add_filter<\/strong>, sus otras funciones son <strong>remove_filter, doing_filter<\/strong> y <strong>has_filter<\/strong>.<\/p><p class=\"wp-block-paragraph\">Si tienes alguna pregunta o comentario, no dudes en dejarlo a continuaci&oacute;n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un filtro de WordPress es un hook que manipula datos internos antes de que se muestren en el navegador. Para crear un filtro, a&ntilde;ade la funci&oacute;n add_filter en el archivo functions.php de tu sitio web. En el desarrollo de WordPress, los usuarios utilizan este filtro para modificar un plugin, un tema o una funcionalidad espec&iacute;fica [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/es\/tutoriales\/add-filter-wordpress\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":317,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"add_filter WordPress: C\u00f3mo personalizar tu sitio de WordPress","rank_math_description":"Aprende a usar add_filter en WordPress para adaptar tu sitio a tus necesidades. Este tutorial te guiar\u00e1 con ejemplos pr\u00e1cticos.","rank_math_focus_keyword":"add_filter wordpress","footnotes":""},"categories":[4747,14348],"tags":[],"class_list":["post-37880","post","type-post","status-publish","format-standard","hentry","category-wordpress","category-experto"],"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\/es\/tutoriales\/wp-json\/wp\/v2\/posts\/37880","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/users\/317"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/comments?post=37880"}],"version-history":[{"count":2,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts\/37880\/revisions"}],"predecessor-version":[{"id":37889,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts\/37880\/revisions\/37889"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/media?parent=37880"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/categories?post=37880"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/tags?post=37880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}