
user_trailingslashit()とは?
user_trailingslashit()
は、
URLの末尾にスラッシュ(/)を付けるかどうかをWordPressの設定に従って自動で調整する関数
です。
通常、URLの末尾にスラッシュを付けるかどうかはパーマリンク設定に依存します。
例:
スラッシュあり
https://example.com/sample-post/
スラッシュなし
https://example.com/sample-post
これを手動で一貫性を保つのは大変です。
そのため、user_trailingslashit()
を使うとWordPressの設定に沿った正しい形式に整形できます。
user_trailingslashit()の基本的な書式
user_trailingslashit( string $string, string $type_of_url = '' )
user_trailingslashit()の引数
引数 | 説明 |
---|---|
$string | 対象のURLまたはパス文字列 |
$type_of_url | URLの種類(コンテキスト)。single , category , page など。 |
user_trailingslashit()の戻り値
末尾が自動的にスラッシュ付き・なしに整形された文字列が返る。
user_trailingslashit()の具体例
例:単純なURLにスラッシュを付ける
echo user_trailingslashit( 'https://example.com/sample-post' );
スラッシュあり設定なら
https://example.com/sample-post/
スラッシュなし設定なら
https://example.com/sample-post
となります。
$type_of_url
の役割
$type_of_url
にはURLの種類を指定できます。
値 | 用途 |
---|---|
single | 投稿のパーマリンク |
category | カテゴリURL |
page | 固定ページURL |
author | 著者アーカイブURL |
year | 年アーカイブURL |
month | 月アーカイブURL |
day | 日アーカイブURL |
feed | フィードURL |
search | 検索URL |
commentpaged | コメントページURL |
paged | ページネーションURL |
これを指定することで、WordPress内部設定に応じた末尾スラッシュが付く・付かないが変わります。
例:カテゴリーURL
$category_base = get_category_link(5);
echo user_trailingslashit( $category_base, 'category' );
関連する「trailing slash」関数
WordPressには他にも似た関数があります。
関数 | 内容 |
---|---|
trailingslashit() | 無条件に末尾スラッシュを付与する |
untrailingslashit() | 無条件に末尾スラッシュを除去する |
**user_trailingslashit()
は「ユーザー設定に応じて付けるか除くかを判断する」**点が異なります。
例:trailingslashit()
$url = trailingslashit('https://example.com/sample');
echo $url; // https://example.com/sample/
例:untrailingslashit()
$url = untrailingslashit('https://example.com/sample/');
echo $url; // https://example.com/sample
内部的な動作
user_trailingslashit()
は、実際には get_option('permalink_structure')
の値を参照し、
- スラッシュ付き形式か
- スラッシュなし形式か
を判断しています。
たとえばパーマリンク設定が/%postname%/
ならスラッシュありに、/%postname%
ならスラッシュなしに統一されます。
カスタム用途の実装例
カスタムタクソノミーURLを整形する
$term_link = get_term_link($term);
$formatted_url = user_trailingslashit($term_link, 'category');
投稿URLを手動で組み立てる場合
$url = home_url('/my-custom-post');
echo user_trailingslashit($url, 'single');
ページネーションのURL
$base = home_url('/blog/page/2');
$paginated = user_trailingslashit($base, 'paged');
user_trailingslashit()のよくある質問
$type_of_url
を指定しないとどうなる?-
単純に末尾スラッシュ設定に従って付与・除去されますが、文脈に合った判断は行われません。
- スラッシュ付与を強制したい場合は?
-
trailingslashit()
を使ってください。$url = trailingslashit($url);
- スラッシュ除去を強制したい場合は?
-
untrailingslashit()
を使います。$url = untrailingslashit($url);
- WordPressルールに合わせる必要はある?
-
はい。URLの一貫性を保つため、必ず
user_trailingslashit()
を利用すると良いです。
user_trailingslashit()の実用ポイント
- カスタムURLを生成するときは必ず利用する
- パーマリンク変更に伴うエラーを防止
- SEOの観点でもURL正規化に貢献
- テーマ・プラグインの互換性向上
user_trailingslashit()のまとめ
user_trailingslashit()
は「スラッシュ付与・除去を設定に合わせて判断する関数」$type_of_url
でURL種別を指定できるtrailingslashit()
やuntrailingslashit()
と併用して使い分け- URLを一貫性のある形で生成するために重要
活用のコツ
- カスタム投稿・タクソノミーのURLで使う
- 固定ページや検索URLも正規化
- テーマ・プラグイン開発では必須