概要
url_shorten
フィルタは、WordPressにおいてURLを短縮する機能を実装する際によく使用されます。このフィルタを利用することで、カスタムURL短縮サービスや特定の条件に基づいてURLを変更することが可能です。以下は、url_shorten
フィルタがよく使われる機能の一例です:
- リダイレクト用の短縮URL生成
- SNS共有用のURL短縮
- アフィリエイト用リンクの短縮
- QRコード生成用の短縮URL
- 出版物やメールニュース用の短縮URL
- データ分析用のトラッキングURL
- モバイル向けのURL最適化
- サイト内リンクの簡略化
構文
add_filter('url_shorten', 'your_custom_function');
パラメータ
url
: 短縮される元のURLpost_id
: 短縮URLを生成する際に使用される投稿のID
戻り値
- 短縮されたURL(文字列)
関連する関数
https://refwp.com/?titleonly=1&s=url_shorten
使用可能なバージョン
url_shorten
フィルタはWordPress 4.0以上で使用可能です。
コアファイルのパス
wp-includes/functions.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短縮
このサンプルコードは、特定の条件に基づいてURLを短縮します。
add_filter('url_shorten', function($url) {
return 'https://short.url/' . md5($url);
});
引用元: https://example.com/sample1
サンプルコード2: 特定ドメインのURLのみ短縮
指定されたドメインのURLだけを短縮しています。
add_filter('url_shorten', function($url) {
if (strpos($url, 'example.com') !== false) {
return 'https://short.domain/' . base64_encode($url);
}
return $url;
});
引用元: https://example.com/sample2
サンプルコード3: パラメータ付きの短縮URL
URLにパラメータが含まれる場合の短縮処理を行います。
add_filter('url_shorten', function($url) {
return 'https://short.url/?ref=' . urlencode($url);
});
引用元: https://example.com/sample3
サンプルコード4: デバッグ用の短縮URL
短縮する際にデバッグ情報を追加しています。
add_filter('url_shorten', function($url) {
error_log("Shortening URL: " . $url);
return 'https://short.url/' . hash('sha256', $url);
});
引用元: https://example.com/sample4
サンプルコード5: API経由での短縮
外部APIを使用してURLを短縮する例です。
add_filter('url_shorten', function($url) {
$response = wp_remote_get('https://api.urlshortener.com/shorten?url=' . urlencode($url));
return json_decode($response['body'])->shortened_url ?? $url;
});
引用元: https://example.com/sample5