Elimina el nuevo filtro de WordPress 3.0

This post was published 8 years ago. It may be exremely outdated.

Con la llegada de WordPress 3.0 se ha introducido un nuevo filtro que no aparecía documentado en el codex: se trata de un filtro que reemplaza la palabra “WordPress” por “WordPress“. Esto en principio resulta inofensivo, aunque algo molesto en algunos casos, sin embargo puede provocar algunos problemas con nombres de archivos y URLs, ya que el filtro se aplica a los títulos de los artículos y el contenido tanto de los mismos como de los comentarios.

Este nuevo filtro está definido en el archivo wp-includes/default-filters.php (sobre la línea 90):

// Format WordPress
foreach ( array( 'the_content', 'the_title', 'comment_text' ) as $filter )
	add_filter( $filter, 'capital_P_dangit' );

La función capital_P_dangit() en cuestión está en el archivo  wp-includes/formatting.php (sobre la línea 2828):

/**
 * Forever eliminate "Wordpress" from the planet (or at least the little bit we can influence).
 *
 * Violating our coding standards for a good function name.
 *
 * @since 3.0.0
 */
function capital_P_dangit( $text ) {
       return str_replace( 'Wordpress', 'WordPress', $text );
}

Como podéis ver, la función reemplaza cualquier aparición de “WordPress” por “WordPress“, dando igual que esté en la URL de una imagen o de un enlace, en una cita, en parte de un código (en PHP la variable $Wordpress y $WordPress son variables distintas), lo que puede hacer que algunos ejemplos de código estén mal.

Eliminar el filtro es muy sencillo, basta con añadir al archivo functions.php de nuestro theme (o crear un plugin con el siguiente código):

foreach ( array( 'the_content', 'the_title', 'comment_text' ) as $filter )
	remove_filter( $filter, 'capital_P_dangit' );

Con esto el filtro queda eliminado y volvemos a tener la libertad de escribir WordPress como nos plazca. Yo por mi parte ya he eliminado el filtro en Sumolari.com.

Leave a Reply