J'ai fait beaucoup de recherches sur cela, donc je m'excuse sincèrement s'il existe une entrée codex pour cela, mais pour ma vie, je ne peux pas trouver de règle absolue sur les caractères acceptables dans , mais plus spécifiquement pour un type de publication personnalisé dans ce cas).
Nous avons actuellement une situation où nous avons quelques types de publication personnalisés avec une structure de type slug comme (pseudo):
some_Context_Thats_Not_A_Category_slug/sub_context_thats_not_a_category_slug/
+ le titre de l'article
Le segment dans grey
est le "slug" dans son intégralité. En pratique, cela ressemblerait à ceci:
hamburgers/cheeseburgers
comme slug de type post
L'utilisation de la barre oblique est-elle autorisée/sécurisée dans ce scénario?
Critères d'acceptation d'une réponse:
"oui" ou "non" à la question posée et lien vers l'endroit où je peux trouver des ensembles de règles contemporains WP slug.
Merci d'avance!
Non, les barres obliques ne sont pas autorisées dans les slugs. Cependant, ils sont automatiquement supprimés lorsque vous essayez d'inclure des barres obliques dans un slug sur l'écran de post-édition. Les limaces sont désinfectées en utilisant sanitize_title()
.
Malheureusement, il n’existe pas de moyen simple d’expliquer ce qui est autorisé ou non dans un slug, et encore moins de donner un ensemble de règles simples auxquelles doivent adhérer des slugs valables. Cependant, nous pouvons résumer de manière assez compacte les caractéristiques les plus importantes d’un slug: un slug se compose uniquement de caractères alphanumériques minuscules, de tirets et de tirets bas, sans 2 tirets ou plus à la suite (séquences de tirets bas are _ permis). En outre, une limace ne peut pas commencer ou se terminer par un trait d'union.
Paramètres:
$title
: Titre à supprimer$fallback_title
(facultatif, chaîne vide par défaut): slug à utiliser si le $title
désinfecté s'avère vide$content
(facultatif, la valeur par défaut est 'save'): l'opération pour laquelle la chaîne est assainieLa fonction sanitize_title
se comporte de la manière suivante (par défaut, avec les arguments par défaut $fallback_title
et $context
, sans filtres externes appliqués):
sanitize_title_with_dashes()
est appelé sur la chaîne résultanteL'explication plus longue (et plus complète) peut être trouvée ci-dessous.
En plus du paramètre $title
, sanitize_title_with_dashes()
a deux autres arguments, le premier non utilisé et le second, le contenu, $context
, qui est passé de sanitize_title
(et est donc 'save'). sanitize_title_with_dashes()
fait beaucoup de choses, je vais donc essayer d'expliquer la séquence d'étapes qu'il effectue pour assainir une chaîne.
%20
pour l'espace)&
sont supprimées.
) sont remplacés par des traits d'union (-
)×
) est remplacé par "x"Et voilà le processus complet de désinfection du titre!