この記事は最後に更新してから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


お勧め

is_home(2018年5月27日 更新)

bool is_home( )
要求されているページが、ホーム(トップ)ページか調べる。

update_comment_meta(2014年3月9日 更新)

bool update_comment_meta( int $comment_id, string $meta_key, mixed $meta_value [ , mixed $prev_value = '' ] )
コメントメタ情報の値を更新する。

wp_robots_noindex(2021年3月13日 更新)

array wp_robots_noindex( array $robots )
robotsメタ要素のcontent属性にnoindexを適用する。

is_taxonomy_hierarchical(2018年5月27日 更新)

bool is_taxonomy_hierarchical( string $taxonomy )
タクソノミーに階層(親子)関係があるか調べる。

get_comment_pages_count(2015年12月16日 更新)

int get_comment_pages_count( [ array $comments = null [ , int $per_page = null [ , bool $threaded = null ] ] ] )
コメントページ数を取得する。