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年03月13日 14:06


お勧め

esc_attr_e(2018年5月27日 更新)

void esc_attr_e( string $text [ , string $domain = 'default' ] )
現在のロケールに応じた翻訳テキストを取得し、その中に含まれている特殊文字をHTMLエンティティに変換してから表示する。

the_comments_navigation(2018年5月27日 更新)

void the_comments_navigation( [ array $args = array() ] )
コメントナビゲーションを表示する。

readonly(2018年5月27日 更新)

string readonly( mixed $readonly [ , mixed $current = true [ , bool $echo = true ] ] )
readonly属性を表示する。

set_post_type(2019年1月7日 更新)

int|false set_post_type( [ int $post_id = 0 [ , string $post_type = 'post' ] ] )
投稿情報の投稿タイプを変更する。

the_posts_pagination(2018年5月27日 更新)

void the_posts_pagination( [ array $args = array() ] )
アーカイブページ向けのページ番号ナビゲーションを表示する。