概要
get_url_in_content
フィルタは、コンテンツ内のaタグのURLを抜き出す際に利用されます。このフィルタは、投稿やページなどのコンテンツから特定のURL情報を取得・変換する際に非常に役立ちます。以下は、このフィルタがよく使われる機能の例です。
- SEOの最適化
- 自動リンク挿入
- リンク切れのチェック
- ソーシャルメディアシェアのリンク抽出
- コンテンツの解析・統計
- URLの短縮
- コンテンツフィルタリング
- フロントエンドでのカスタム表示
構文
add_filter('get_url_in_content', 'your_function_name', 10, 2);
パラメータ
string $url
: 元のURLstring $content
: コンテンツ全体
戻り値
string
: フィルタリングされたURL
関連する関数
https://refwp.com/?titleonly=1&s=get_url_in_content
使用可能なバージョン
WordPress 4.7以降で使用可能です。
ワードプレスのコアファイルのパス
wp-includes/post-template.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
add_filter('get_url_in_content', 'extract_urls', 10, 2);
function extract_urls($url, $content) {
// コンテンツ内から特定のパターンのURLだけを抜き出す
if (preg_match('/https?://example.com/S+/', $url, $matches)) {
return $matches[0];
}
return $url;
}
このコードは、コンテンツ内から特定のドメイン(example.com)のURLを抜き出すフィルタです。
サンプルコード2
add_filter('get_url_in_content', 'modify_link', 10, 2);
function modify_link($url, $content) {
// URLが特定の条件を満たす場合に変更
if (strpos($url, 'http') === 0) {
return str_replace('http', 'https', $url);
}
return $url;
}
このコードは、すべてのHTTPリンクをHTTPSに変更するフィルタです。
サンプルコード3
add_filter('get_url_in_content', 'log_urls', 10, 2);
function log_urls($url, $content) {
// 抜き出したURLをログに記録する
error_log('URL extracted: ' . $url);
return $url;
}
このコードは、抽出したすべてのURLをサーバーのエラーログに記録します。
サンプルコード4
add_filter('get_url_in_content', 'remove_invalid_urls', 10, 2);
function remove_invalid_urls($url, $content) {
// 無効なURL(404など)をフィルタリング
if (!filter_var($url, FILTER_VALIDATE_URL)) {
return '';
}
return $url;
}
このコードは、無効なURLをコンテンツから除外します。
サンプルコード5
add_filter('get_url_in_content', 'add_tracking_param', 10, 2);
function add_tracking_param($url, $content) {
// URLにトラッキングパラメータを追加
return $url . '?utm_source=your_source';
}
このコードは、すべてのURLにトラッキングパラメータを追加します。