Se muestran comillas en la plantilla WordPress

Recientemente he estado actualizando un entorno de WordPress y me he encontrado con que las nuevas versiones (venía de un Core muy antiguo) incluye un filtro que cambia toda una serie de símbolos en la parte vista.

El resultado era que se veían comillas en los títulos, se cortaban y no aparecían los iconos correctos. El filtro es wptexturize y lo que hace es cambiar los símbolos de la siguiente manera:

[alert type=»success»]

[ «» = “” ] [ ‘ = ’ ] [ — = — ] [ — = – ] [ … = … ] [ (c) = © ][ (r) = ® ] [ ™ = ™ ] [ » = ” ] [ « = “ ] [ x = × ]
[/alert]

Esto provocaba que se mostraran incorrectamente los shortcodes que ya tenía definidos en el desarrollo. La solución es en realidad muy sencilla. Sabiendo que el filtro “wptexturize” es el culpable del error simplemente tenemos que removerlo. En el Codex de WordPress encontré la solución mediante la función remover_filter.

Para remover un filtro en wordpress simplemente podemos usar la función remove_filter

En el archivo functions.php del tema configurado en la instalación de WordPress añadí las siguientes líneas de código:

[alert type=»info»]remove_filter(‘the_content’, ‘wptexturize’);
remove_filter(‘the_title’, ‘wptexturize’);
remove_filter(‘single_post_title’, ‘wptexturize’);
remove_filter(‘comment_text’, ‘wptexturize’);
remove_filter(‘the_excerpt’, ‘wptexturize’);
[/alert]

Recordad que en el archivo functions.php todo debe ir entre <? y ?>

Podía haberlo incluido solo para un elemento, como por ejemplo los títulos, pero he preferido curarme en salud e incluirlo para otros elementos. Así ha quedado la modificación en el archivo. Por defecto siempre incluyo el código al final así sé cual ha sido la última modificación realizada.

remove_filter

De esta manera deshabilitamos el filtro en la plantilla y todo aparece correctamente.

Si tenéis problemas al incluir un shortcode como por ejemplo icon=“big transport” o title=“Cómo lo hacemos” y en la parte vista veis las comillas o no lo veis bien aplicad el código anterior en vuestro archivo functions.php y problema solucionado.

Compartir: