概要
site_urlフィルタは、WordPressサイトのURLを取得、変更する際に使用されるフィルタです。このフィルタは、サイトのURLを動的に変更する必要がある場合に役立ちます。具体的には、サードパーティのサービスやカスタムのURL短縮を実装する際に便利です。
よく使われる機能としては以下のようなものが挙げられます。
1. ブランディングURLの設定
2. サードパーティーAPIのURL拡張
3. URLのリダイレクト処理
4. マルチサイト環境におけるURL調整
5. SSL化後のURL変更
6. CDN用のカスタムURL設定
7. テスト環境のURL調整
8. ポート番号の追加や変更
構文
apply_filters( 'site_url', string $url, string $path, string $scheme );
パラメータ
$url– 現在のサイトURL$path– URLに追加するパス$scheme– スキーム(http, httpsなど)
戻り値
- フィルタリングされたサイトURL
関連する関数
使用可能なバージョン
- WordPress 1.5 以降(非推奨または削除されたバージョンはありません)
コアファイルパス
wp-includes/rest-api/endpoints/class-wp-rest-sites-controller.php
この関数のアクションでの使用可能性
| アクション | 使用可能性 |
|---|---|
| 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 | 〇 |
サンプルコード
サンプルコード1: URLの変更
add_filter('site_url', function($url) {
return str_replace('http://', 'https://', $url);
});
このコードは、サイトURLをhttpからhttpsに変更します。
サンプルコード2: カスタムパスの追加
add_filter('site_url', function($url, $path) {
return $url . '/custom-path/' . $path;
}, 10, 2);
このコードでは、すべてのサイトURLにカスタムパスを追加します。
サンプルコード3: サードパーティサービスのURLを追加
add_filter('site_url', function($url) {
return $url . '/services/';
});
このコードは、すべてのサイトURLに特定のサービスへのパスを追加します。
サンプルコード4: リダイレクト用URLの設定
add_filter('site_url', function($url) {
return $url . '/redirect/';
});
このコードは、サイトURLにリダイレクト用のパスを付与します。
サンプルコード5: テスト環境用のURL変更
add_filter('site_url', function($url) {
if (defined('WP_ENV') && WP_ENV === 'testing') {
return 'https://test.example.com';
}
return $url;
});
このコードは、環境変数がテスト用の場合に特定のURLを返します。