user_trailingslashit()

user_trailingslashit()
目次

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_urlURLの種類(コンテキスト)。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も正規化
  • テーマ・プラグイン開発では必須
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初めてホームページを作成したのは1996年。
2000年よりフリーランスで主に中小企業、学校、各種公的団体、個人事業主のWordPressを活用したホームページ制作を行っています。WordPressテーマはそれぞれのクライアントに合わせて作成しています。
WordPressを活用したサイト運営のための情報発信をしていきます。

目次