概要
wp_make_link_relative
フィルタは、URLを相対パスに変換するためのフックです。このフィルタは、特に外部リンクやコンテンツを内部リンクに変換する際に便利です。URLからフルパス名を取得する際に、相対URLを扱うことで、サイト内のリソースへの参照をより柔軟に管理できます。以下は、このフィルタがよく使用される機能の例です。
- 外部サイトへのリンクを相対リンクに変換する
- サイト内の画像リンクを相対パスで表示する
- コンテンツ内のURLを動的に調整する
- テーマやプラグインでリソースへの相対リンクを生成する
- コンテンツが移動した際にリンクの破損を防ぐ
- APIレスポンスで相対URLを使用する
- RSSフィード内のリンクを相対パスに変換する
- SEO対策としてURLを管理する
構文
apply_filters( 'wp_make_link_relative', $content );
パラメータ
$content
: 変換されるURLのコンテンツ。
戻り値
- 相対パスに変換されたURL。
関連する関数
使用可能なバージョン
wp_make_link_relative
フィルタは、WordPress 4.0以降で使用可能です。
コアファイルのパス
wp-includes/link-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
function convert_urls_to_relative( $content ) {
return apply_filters( 'wp_make_link_relative', $content );
}
このコードは、コンテンツ内のURLを相対パスに変換するフィルタを呼び出しています。
サンプルコード 2
add_filter( 'wp_make_link_relative', 'make_links_relative' );
function make_links_relative( $url ) {
return str_replace( home_url(), '', $url );
}
このサンプルでは、ホームURLを削除することで、特定のURLを相対リンクに変換します。
サンプルコード 3
function filter_relative_links( $content ) {
if ( is_single() ) {
return apply_filters( 'wp_make_link_relative', $content );
}
return $content;
}
add_filter( 'the_content', 'filter_relative_links' );
このコードは、シングル投稿ページでのみ相対リンクに変換するフィルタを適用します。
サンプルコード 4
function make_html_links_relative( $html ) {
return preg_replace_callback( '/<a href=["']?([^"'>]*)["']?/', function( $matches ) {
return str_replace( site_url(), '', $matches[0] );
}, $html );
}
add_filter( 'the_content', 'make_html_links_relative' );
このサンプルは、HTML中のリンクを相対リンクに変換します。
サンプルコード 5
add_filter( 'wp_make_link_relative', function( $link ) {
return strpos( $link, home_url() ) === 0 ? str_replace( home_url(), '', $link ) : $link;
});
このコードは、リンクがホームURLで始まる場合、その部分を削除して相対リンクに変換します。
以上のサンプルコードはすべて著作権フリーのものです。