概要
wp_should_replace_insecure_home_url
フィルタは、ワードプレスのサイトアドレスをHTTPからHTTPSに書き換えるべきかを調べるために使用されます。具体的には、セキュリティを強化するために、サイトがHTTPSを使用する必要があるかどうかを評価する際に役立ちます。このフィルタは、次のような機能を実装する際によく使用されます。
- SSL証明書がインストールされているかの確認
- リダイレクト設定のチェック
- 内部リンクの更新
- プラグインやテーマの設定に基づくURLの切り替え
- データベースのURLの修正
- ウィジェットや短縮コードでのURL表示
- APIエンドポイントのセキュリティ強化
- サイトのヘッダーやフッターのカスタマイズ
このフィルタは、wp-includes/plugin.php
に含まれています。
構文
apply_filters( 'wp_should_replace_insecure_home_url', $replace, $url );
パラメータ
$replace
(bool): 置き換えが必要かどうかのブール値。$url
(string): 元のURL。
戻り値
- (bool): 置き換えが必要な場合はtrue、それ以外はfalse。
関連する関数
wp_should_replace_insecure_home_url
使用可能なバージョン
このフィルタは、WordPressバージョン4.4以降で使用可能です。
コアファイルのパス
wp-includes/plugin.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: HTTPSリダイレクトの強制
このコードは、HTTPで開始されるリクエストをHTTPSにリダイレクトします。
add_filter( 'wp_should_replace_insecure_home_url', '__return_true' );
function force_https_redirect() {
if ( ! is_ssl() ) {
wp_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301 );
exit();
}
}
add_action( 'template_redirect', 'force_https_redirect' );
引用元: https://www.example.com
サンプル2: カスタムフィルタの設定
このフィルタを使用して、独自の条件に基づいてHTTPSへ置き換えるかを設定します。
add_filter( 'wp_should_replace_insecure_home_url', 'my_custom_https_filter', 10, 2 );
function my_custom_https_filter( $replace, $url ) {
if ( strpos( $url, 'example.com' ) !== false ) {
return true;
}
return $replace;
}
引用元: https://www.example.com
サンプル3: 特定の条件でのHTTP切替え
このコードは、特定のリファラーがある場合にのみHTTPSに切り替えます。
add_filter( 'wp_should_replace_insecure_home_url', 'conditional_https_replace', 10, 2 );
function conditional_https_replace( $replace, $url ) {
if ( isset( $_SERVER['HTTP_REFERER'] ) && strpos( $_SERVER['HTTP_REFERER'], 'safe-site.com' ) !== false ) {
return true;
}
return $replace;
}
引用元: https://www.example.com
サンプル4: SSL証明書の存在確認
このコードは、サーバーにSSL証明書が存在するかの確認を行い、HTTPSリダイレクトを適用します。
add_filter( 'wp_should_replace_insecure_home_url', 'check_ssl_certificate', 10, 2 );
function check_ssl_certificate( $replace, $url ) {
if ( function_exists( 'is_ssl' ) && is_ssl() ) {
return true;
}
return $replace;
}
引用元: https://www.example.com
サンプル5: プラグイン設定に基づく置き換え
このサンプルでは、特定のプラグイン設定に基づいてURLをHTTPSに書き換えます。
add_filter( 'wp_should_replace_insecure_home_url', 'plugin_based_https_replace', 10, 2 );
function plugin_based_https_replace( $replace, $url ) {
if ( get_option( 'force_https_content', false ) ) {
return true;
}
return $replace;
}
引用元: https://www.example.com