5.7の新機能:HTTPからHTTPSへの移行

説明

先週は「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への移行を支援する機能は、サイトヘルスにある。

サイトヘルスに1テンポ遅れて表示される「Your website does not use 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年02月17日 09:38


お勧め

wp_specialchars_decode(2018年5月27日 更新)

string wp_specialchars_decode( string $string [ , mixed $quote_style = ENT_NOQUOTES ] )
HTMLエンティティ化された特殊文字をもとに戻す。

restore_previous_locale(2018年11月21日 更新)

string | bool restore_previous_locale()
直前のロケールへ戻す。

ent2ncr(2020年4月10日 更新)

string ent2ncr( string $text )
&のような名前エンティティを&のような数値エンティティに変換する。

wp_editor(2017年6月9日 更新)

void wp_editor( string $content, string $editor_id [ , array $settings = array( ] )
エディタを表示する。

get_post_types_by_support(2018年5月27日 更新)

array get_post_types_by_support( mixed $feature [ , string $operator = 'and' ] )
特徴(≒編集要素)の条件にマッチする投稿タイプ名を取得をする。