この記事は最後に更新してから1年以上経過しています。
説明
先週は「WordPress 5.7 Beta 2(以降Beta 2)」が公開され、正式版リリースへ一歩進みました。WordPress 5.7の注目ポイントの1つに「HTTPからHTTPSへの移行」を手助けする機能があり、それに関連する機能を含んだhttps-detection.phpファイルとhttps-migration.phpが追加されていた。
はじめに、この記事は公開された5.7 Beta 2をもとにしており、正式リリースの際に変更される可能性があることを予めお断りする。
HTTPSに対応しているか
サイトをHTTPからHTTPSへの移行を支援する機能は、サイトヘルスにある。
この表示は、「WordPress Address」と「Site Address」のどちらかが「https:」から始まっていない場合に表示される仕組みで、その判定に関連する主な関数は新しく追加されたwp-includes/https-detection.phpに定義されている。
関数 | 機能 |
wp_is_using_https | サイトがHTTPSを使用しているか調べる |
---|---|
wp_is_home_url_using_https | 「Site Address」がHTTPSを使用しているか調べる |
wp_is_site_url_using_https | 「WordPress Address」がHTTPSを使用しているか調べる |
wp_is_https_supported | サイトがHTTPSに対応しているか調べる |
wp_is_https_supported関数では、実際に「Site Address」をHTTPSに変更してアクセスし、その結果をオプション'https_detection_errors'に保存。アクセス結果にエラーがなく、現在のユーザーが管理者('update_https'所有)の場合「Update your site to use HTTPS」をボタンを表示される。
HTTPSに切り替える
「Update your site to use HTTPS」をボタンがクリックされた場合、「WordPress Address」と「Site Address」を「https:」へ変更する。そういったサイトの更新に関連す主なる関数がwp-includes/https-migration.phpに定義されている。
関数 | 機能 |
wp_should_replace_insecure_home_url | 古いURLを置き換える必要があるか調べる |
---|---|
wp_replace_insecure_home_url | 投稿記事の古いURLを置き換える |
wp_update_urls_to_https | 「WordPress Address」と「Site Address」を「https:」へ変更する |
wp_update_urls_to_https関数では、「WordPress Address」と「Site Address」を「https:」へ変更しているが、投稿記事の内容については何もしていない。投稿記事内のURLを置き換えるwp_replace_insecure_home_url関数は、'the_content'および'the_excerpt'フィルターとして定義されており、ページを表示する際に置き換えが行われる仕組みで、データベースの内容そのものは書き換えられない。
add_filter( 'the_content', 'wp_replace_insecure_home_url' );
:
add_filter( 'the_excerpt', 'wp_replace_insecure_home_url' );
このあたり、キャッシュプラグインなどで投稿ページをキャッシュしているサイトでこの機能を使用する場合はキャッシュをクリアするといった対応が必要だろう。
予定通りなら明日には「Beta 3」が公開され、正式リリースまで1か月を切る。jQuery 3.5.1へのアップデートに関連してテーマやプラグインの動作検証は早めに済ませておきたいですね。
最終更新 : 2021年03月13日 14:06
関連
お勧め
add_shortcode(2018年5月27日 更新)
get_user_setting(2022年1月31日 更新)
have_posts(2018年5月27日 更新)
in_category(2018年5月27日 更新)
add_feed(2024年6月24日 更新)