Limpia un título de caracteres conflictivos con WordPress para convertirlo en una URL

Los enlaces permanentes o pretty permalinks son una bonita forma de hacer que el título de las entradas pase a una URL sin afectar al formato de éstas. De igual forma, si estamos trabajando en un sistema que requiera tratamiento de ficheros y subida/bajada de éstos, debemos también atender a este problema de convertir títulos con multitud de símbolos en URL válidas y que no introduzca caracteres como los %20 en lugar de los espacios en blanco.

Os traigo una función, que viene incluida dentro de WordPresssanitize_title_with_dashes(), que hace justo eso mismo y que os puede ser muy útil desarrollando cualquier tema o plugin. Para el caso concreto de nombres de ficheros tenemos sanitize_file_name( $filename ) que hace eso mismo pero con nombres de fichero.

¿Qué hace la función?

Limpia el título, reemplazando espacios en blancos y otros caracteres conflictivos por guiones. Devuelve el título equivalente, usando sólo caracteres alfanuméricos, barras bajas y guiones.

¿Cómo usamos sanitize_title_with_dashes()?

Veamos qué parámetros recibe:

  • $title: cadena el título a limpiar de caracteres conflictivos.
  • string $raw_title: opcional, se mantiene por compatibilidad con funciones antiguas, no se utiliza.
  • string $context: opcional, indica el contexto en el que se usa esta función, puede ser “display” al mostrar la entrada (la opción por defecto) o “save” a la hora de hacer un guardado.