Programador Web & SEO – Madrid

La importancia de los filtros

filtros en wordpress - Carlos González Gurrea

filtros en wordpress - Carlos González Gurrea

Y como dice mi título, la importancia que tienen en la vida los filtros, filtros para todo, para limpiar. Filtro de personas, filtro de partículas, filtro de ….. , bueno un montón de filtros.

Hoy vengo a hablaros de los filtros de WordPress, no filtros de búsqueda sino filtros con los que podemos modificar parte del contenido que se visualiza en nuestro WordPress, y darle un aire nuevo.

La función en si se llama add_filter, con esta función podemos modificar elementos en tiempo de ejecución, ¿para qué quiero esto?, Imaginaros que quiero añadir un tag nuevo a mis imágenes o añadirle un elemento para luego poder usarlo con un jquery y así poderle trabajar con él, pues para todo esto podríamos usar los filtros.

Su función es la siguiente:

add_filter( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 )

Que significa esto

  1. $tag es el nombre del filtro al que estamos vinculando
  2. $function_to_add es el nombre de la función que debería ser invocada al ejecutar el filtro
  3. $priority, la prioridad con la cual la función debería ser llamada
  4. $accepted_args son el número de argumentos que la función acepta

Os pongo un ejemplo de su web oficial, como veis podemos cambiar el tamaño del excerpt con un simple filtro, bastaría copiar esto en el functions.php.  Siempre os hablo del archivo functions pero todas estas funciones las podríamos añadir en un plugin creado por nosotros, así si se actualiza la plantilla el functions.php no habría que tocarlo.

if( ! function_exists( 'prefix_custom_excerpt_length' ) )
{
    function prefix_custom_excerpt_length( $length )
    {
        return 40;
    }
}
add_filter( 'excerpt_length', 'prefix_custom_excerpt_length', 999 );

Os pongo otro filtro muy interesantes, en WordPress en muchas ocasiones metemos videos embebidos, pues bien esto suele dar problemas con el responsive de la página. Este truco sigue funcionando después de 5 años sigue funcionando. Me parece increíble. Podéis ver el post original aquí

En vuestro functions.php

add_filter('embed_oembed_html', 'my_embed_oembed_html', 99, 4);
function my_embed_oembed_html($html, $url, $attr, $post_id) {
    return '<div class="video-container">' . $html . '</div>'; 
}

En los estilos de vuestro template :

.video-container {
	position: relative;
	padding-bottom: 50px;
	padding-top: 30px;
	height: 0;
	overflow: hidden;
}

.video-container iframe,
.video-container object,
.video-container embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

Y para terminar este post. Os dejo unos filtros que he ido recapitulando.

Añadir un target a todos los enlaces

function link_to_blank($text) {
	$return = str_replace('<a', '<a target="_blank"', $text);
	return $return;
}
add_filter('the_content', 'link_to_blank');

Convertir ciertas palabras a enlaces

function replace_string($text){
     $replace = array(
                      'carlosgonzalezgurrea' =&gt; '<a href="https://www.carlosgonzalezgurrea.es">carlosgonzalezgurrea</a>'
     );
     $text = str_replace(array_keys($replace), $replace, $text);
     return $text;
}

add_filter('the_content', 'replace_string');
add_filter('the_excerpt', 'replace_string');

Ya os iré añadiendo más filtros personalizados, si queréis que os ayude con alguno, ya sabéis contactar conmigo por redes sociales o por el formulario de la página
Salud@s

La importancia de los filtros Modificado: mayo 22nd, 2018 por Carlos González Gurrea
Salir de la versión móvil