この記事は最後に更新してから1年以上経過しています。

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


お勧め

the_modified_author(2019年10月17日 更新)

void the_modified_author()
更新者の表示名を表示する。

wp_assign_widget_to_sidebar(2021年7月29日 更新)

void wp_assign_widget_to_sidebar( string $widget_id, string $sidebar_id )
ウィジェットをサイドバーに配置する。

get_comment_ID(2018年5月27日 更新)

int get_comment_ID( )
現在のコメントのIDを取得する。

term_is_ancestor_of(2019年3月15日 更新)

bool term_is_ancestor_of( int | object $term1, int | object $term2, string $taxonomy )
タームが子孫関係か調べる。

wp_get_custom_css_post(2019年11月14日 更新)

WP_Post wp_get_custom_css_post( [ string $stylesheet = '' ] )
カスタマイザーで追加したCSS情報を取得する。