私はこれについて多くのグーグルをしてきたのでこのためのコーデックスエントリがあるかどうか心からお詫び申し上げますが、私の人生のために私は "スラッグ"でどんな文字が受け入れられるかについて難しいそして速い規則を見つけることができませんただし、より具体的には、このインスタンスのカスタム投稿タイプ用です。
現在、(擬似)のようなスラッグ構造を持つカスタム投稿タイプがいくつかあります。
some_Context_Thats_Not_A_Category_slug/sub_context_thats_not_a_category_slug/
+投稿のタイトル
grey
内のセグメントは、その全体が「スラッグ」です。実際には、これは次のようになります。
投稿タイプスラッグとしてのhamburgers/cheeseburgers
このシナリオでは、スラッシュの使用は許可されていますか/安全ですか?
回答が受け入れられるための基準:
提起された質問への「はい」または「いいえ」、および私が現代のWPスラッグルールセットを見つけることができる場所へのリンク。
前もって感謝します!
いいえ、スラッシュにスラッシュを使用することはできません。ただし、ポスト編集画面のスラグにスラッシュを含めると、自動的に削除されます。ナメクジはsanitize_title()
を使って消毒されます。
残念ながら、ナメクジの中で何が許されているのか、また許されないのかを説明する簡単な方法はありません。有効なナメクジが守らなければならない単純な規則のセットを与えることは言うまでもない。しかし、スラグの最も重要な特徴を非常に簡潔にまとめることができます。 スラグは、2文字以上のダッシュを含まない、小文字の英数字、ダッシュとアンダースコアで構成されます(アンダースコアのシーケンスare許可されています。さらに、スラグはハイフンで開始または終了できません。
パラメーター:
$title
:消毒するタイトル$fallback_title
(オプション、デフォルトは空文字列):サニタイズされた$title
が空の場合に使用するスラッグ$content
(オプション、デフォルトは 'save'):文字列がサニタイズされる操作関数sanitize_title
は次のように振る舞う(デフォルトでは、デフォルトの$fallback_title
と$context
引数を使い、外部フィルタは適用しない)。
sanitize_title_with_dashes()
が呼び出されますより長く(そしてより完全な)説明は以下にあります。
$title
パラメータ以外に、sanitize_title_with_dashes()
にはさらに2つの引数があります。最初の引数は使用されず、2番目の引数は$context
から渡されるsanitize_title
という内容です。したがって「保存」します。 sanitize_title_with_dashes()
は多くのことをしているので、私はそれが文字列をサニタイズするためにどんなステップのシーケンスを実行するかを説明しようとします。
%20
のように)&
などのすべてのHTMLエンティティが削除されます.
)はハイフン(-
)に置き換えられます×
)は "x"に置き換えられます。そして、あなたはそれを持っています、完全なタイトル - サニタイズ・プロセス!