概要
strip_fragment_from_url
フィルタは、URLからフラグメント部分(#以降の部分)を取り除くために使用されます。このフィルタは、特にリダイレクトやクエリパラメータの処理を行う際に便利です。具体的には、以下のような場合に使用されることが多いです:
- ページ遷移時にフラグメントを排除したいとき
- SEOの観点からURLを整理したい場合
- リンクを保持する際の整合性を持たせたい場合
- JavaScriptで操作されたURLをサーバーサイドで適切に処理したい場合
- ユーザーが特定のセクションに遷移する際の動きを制御したいとき
- 外部からのリクエストに対して、フラグメントを無視したい場合
- APIエンドポイントの整備を行う際
- リダイレクトループを防ぐためにフラグメントを排除したい場合
構文
apply_filters( 'strip_fragment_from_url', $url );
パラメータ
$url
(string): フラグメントを取り除きたいURL。
戻り値
- フラグメントを除去したURL(string)。
関連する関数
使用可能なバージョン
このフィルタはWordPress 4.0以降で使用可能です。
コアファイルのパス
wp-includes/query.php
サンプルコード
サンプルコード 1: フラグメントを除去する
add_filter('strip_fragment_from_url', function($url) {
return strtok($url, '#');
});
このサンプルコードは、URLのフラグメント部分を取り除いて返します。strtok
関数を使用して、最初の’#’文字までの部分を取得します。
サンプルコード 2: カスタムURLを生成しフラグメントを削除
add_filter('strip_fragment_from_url', function($url) {
return esc_url($url);
});
このコードは、与えられたURLをエスケープしつつ、フラグメントを取り除きます。セキュリティ強化に役立つサンプルです。
サンプルコード 3: リダイレクト時にフラグメントを無視
add_action('template_redirect', function() {
$url = strip_fragment_from_url($_SERVER['REQUEST_URI']);
wp_redirect($url);
exit;
});
このサンプルは、リダイレクトする際に現在のURLからフラグメントを除去します。
サンプルコード 4: フラグメントをログに記録
add_filter('strip_fragment_from_url', function($url) {
error_log("Received URL: " . $url);
return strtok($url, '#');
});
受け取ったURLをログに記録し、フラグメントを除去して返すサンプルです。
サンプルコード 5: 特定の条件下でフラグメントを保持する
add_filter('strip_fragment_from_url', function($url) {
if (is_user_logged_in()) {
return $url; // ログインユーザーの場合、フラグメントを保持
}
return strtok($url, '#'); // それ以外はフラグメントを除去
});
このサンプルは、ユーザーがログインしている場合に限りフラグメントを保持し、それ以外の場合にはフラグメントを除去します。
この関数のアクションでの使用可能性
アクション名 | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | 〇 |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | 〇 |
get_header | |
wp_head |
非推奨または削除されたバージョン
このフィルタは特定のバージョンで非推奨または削除された情報はありません。