custom-post-types – Formato de slug: ¿Caracteres aceptables?

Pregunta:

He buscado mucho en Google sobre esto, así que me disculpo sinceramente si hay una entrada del códice para esto, pero por mi vida, no puedo encontrar una regla estricta sobre qué personajes son aceptables en una "babosa" (cualquier babosa realmente , pero más específicamente para un tipo de publicación personalizada en este caso).

Actualmente tenemos una situación en la que tenemos algunos tipos de publicaciones personalizadas con una estructura de slug como (pseudo):

some_Context_Thats_Not_A_Category_slug/sub_context_thats_not_a_category_slug/ + el título de la publicación

El segmento en grey es la "babosa" en su totalidad. En la práctica, esto parecería decir:

hamburgers/cheeseburgers como la babosa tipo post

¿El uso de barra diagonal está permitido / es seguro en este escenario?

Criterios para que se acepte una respuesta:

"sí" o "no" a la pregunta planteada y un enlace donde puedo encontrar conjuntos de reglas de slug de WP contemporáneos.

¡Gracias por adelantado!

Respuesta:

No, no se permite el uso de barras diagonales en slugs. Sin embargo, se eliminan automáticamente cuando se intenta incluir barras en una barra en la pantalla de edición posterior. Las babosas se desinfectan usando sanitize_title() .

Desafortunadamente, no hay una manera fácil de explicar qué está y qué no está permitido en una babosa, y mucho menos dar un conjunto simple de reglas a las que deben adherirse las barras válidas. Sin embargo, podemos resumir las características más importantes de un slug de forma bastante compacta: un slug consta únicamente de caracteres alfanuméricos en minúscula, guiones y guiones bajos, sin 2 o más guiones seguidos ( se permiten secuencias de guiones bajos). Además, una babosa no puede comenzar ni terminar con un guión.

sanitize_title ()

Parámetros:

  • $title : Título a desinfectar
  • $fallback_title (opcional, por defecto es una cadena vacía): Slug para usar si el $title desinfectado resulta vacío
  • $content (opcional, predeterminado en 'guardar'): la operación para la cual se desinfecta la cadena

La función sanitize_title comporta de la siguiente manera (por defecto, con los argumentos $fallback_title y $context , sin filtros externos aplicados):

  1. Los caracteres acentuados como "é" y "Ö" se reemplazan por sus caracteres "sin acento" correspondientes (en este ejemplo, "e" y "O", respectivamente)
  2. sanitize_title_with_dashes() se llama en la cadena resultante

La explicación más larga (y más completa) se puede encontrar a continuación.

sanitize_title_with_dashes ()

Además del parámetro $title , sanitize_title_with_dashes() tiene dos argumentos más, el primero de los cuales no se usa y el segundo es el contenido, $context , que se pasa desde sanitize_title (y por lo tanto es 'guardar'). sanitize_title_with_dashes() hace muchas cosas, así que intentaré explicar qué secuencia de pasos realiza para desinfectar una cadena.

  1. Todas las etiquetas HTML están eliminadas
  2. Se eliminan los signos de porcentaje, excepto los que están en octetos (como %20 para el espacio)
  3. La cadena se convierte a minúsculas
  4. Todas las entidades HTML, como & están despojados
  5. Todos los puntos ( . ) Se reemplazan por guiones ( - )
  6. Tanto los guiones largos como los guiones largos ( WikiPedia sobre guiones ), así como los espacios, se convierten en guiones.
  7. Algunos caracteres especiales, como los acentos (por ejemplo, el acento grave) se eliminan
  8. El carácter de "horas" ( × ) se reemplaza por "x"
  9. Todos los caracteres, excepto los alfanuméricos, los espacios, los guiones y los guiones bajos se eliminan.
  10. Las secuencias de guiones (2 o más guiones seguidos) se reemplazan por un solo guión
  11. Los guiones iniciales y finales se eliminan

Y ahí lo tienes, ¡el proceso completo de saneamiento de títulos!

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım