WordPress 5.1 をチェックしています

WordPress 5.1 をチェックしています
WordPress5.1 RC1 が 公開されました。 WordPress5.1は 2019年2月21日に リリースされる予定なので いろいろチェックをしています。
その中で WordPress5.1で気がついたところを取り上げていきます。
これから追加・変更はあるかもですので説明や画像キャプチャ等と違う場合がありますのでご容赦ください。

リリースまでのスケジュールは WordPress 5.1 Development Cycle に載っています。
WordPress5.1 RC1 https://wordpress.org/news/2019/02/wordpress-5-1-release-candidate/
WordPress5.1 RC2 https://wordpress.org/news/2019/02/wordpress-5-1-rc2/

【2019/02/22追記 リリースされました】
WordPress 5.1 “Betty” https://wordpress.org/news/2019/02/betty/
 

PHPバージョンのチェック

WordPress 5.1 PHPバージョンのチェック
WordPressではPHPバージョンをチェックして最小PHPバージョンを満たしていないと イントールできないようにするつもりだそうです。
今回はその前段階だと思われますが 最小PHPバージョン(5.6)を満たしていないと 警告がでます。

 
プラグインも同様に各プラグインが指定している最小PHPバージョンを満たしていないと 新規イントールできなくなりました。
WordPress 5.1 PHPバージョンのチェック プラグイン

【参考】
Updating the Minimum PHP Version | Make WordPress Core
https://make.wordpress.org/core/2018/12/08/updating-the-minimum-php-version/

Disable “Install Plugin” button for PHP required version mismatch
https://core.trac.wordpress.org/ticket/43986

PHP Site Health Mechanisms in 5.1
https://make.wordpress.org/core/2019/01/14/php-site-health-mechanisms-in-5-1/

 
 

PHPのエラー回復機能(WSOD保護) 【延期】

WordPress5.1 から phpのエラーチェックをして、エラー時でも画面が真っ白にならず リカバリし易くなるようになる予定でしたが
セキュリティ上の問題が出てきたので WordPress5.2 に延期されました。

【参考】
Only pause extensions for users with recovery access
https://core.trac.wordpress.org/ticket/46130

 

どんなのだったかと言うと

エラー発生時では公開ページは こんな感じで表示されます。
WordPress 5.1 PHPのエラー回復機能 公開ページ

エラー発生時でも管理画面に入れます。ログインすると警告が出ています。
WordPress 5.1 PHPのエラー回復機能 管理画面
「Go to the Plugins screen」をクリックすると問題を起こしているプラグインが表示されます。


※ここではどこで何のエラーが起きているかのヒントも表示されています。

 
 

ブロックエディタ 【延期】

Gutenbergプラグイン の方でも 改良とブロックの追加があります。
※WordPress5.1 RC1の時点ではまだコアには組み込まれていません。
【追記】これも WordPress5.2 からになりました、今回はパフォーマンスを向上させただけです。

RSSブロック や kindle埋め込みブロック とか カバーブロック にセンター位置を変更できる機能(Focal Point Picker)等追加されています。

【例 カバーブロック】 赤枠内の丸い部分をマウスでドラッグするとセンター位置を変更できます。
Gutenbergプラグイン(ver5.0) カバーブロック

また、WordPress5.0では既存の一部のウィジェットが Gutenbergブロックに搭載されていましたが 残りのウィジェットを Gutenbergブロックに移植する作業が行われているようです。

【参考】
What’s New in Gutenberg? (6th February)
https://make.wordpress.org/core/2019/02/06/whats-new-in-gutenberg-6th-february/

Porting Widgets to Blocks: Feb 4, 2019
https://make.wordpress.org/core/2019/02/05/porting-widgets-to-blocks-feb-4-2019/

 
 

開発者向けの関数

WordPress5.1ではいろいろな機能やアクションフィルターが追加されています。
そのなかで ぉ! と思ったのを紹介します。
 

WP_DEBUG_LOGのファイルパス値

デバッグログの場所が変更できるようになりました。
グローバルな場所で どうしても置かないといけない場合に 別フォルダにして.htaccess で見れなくするとかして 使えそうです。

【例】wp-config.php

define( 'WP_DEBUG_LOG', '/srv/path/to/custom/log/location/errors.log' );

【参考】
Expand WP_DEBUG_LOG and make WP_DEBUG_DISPLAY work as expected
https://core.trac.wordpress.org/ticket/18391

 

メタキーのLIKEサポート

WP_Queryで LIKEが使えるキー「compare_key」が追加されました。

$q = new WP_Query(
	array(
		'post_type'  => 'my_custom_post_type',
		'meta_query' => array(
			array(
				'compare_key' => 'LIKE',
				'key'         => 'foo',
			),
		),
	)
);

※’foo’の所は % は要りません。SQL文 生成時に前後につけてくれます。

【参考】
LIKE support for meta keys in 5.1 | Make WordPress Core
https://make.wordpress.org/core/2019/01/23/like-support-for-meta-keys-in-5-1/

 

pre_wp_unique_post_slugフィルタ

投稿スラッグは主にタイトルをベースに自動で生成していますが、オリジナルなルールで投稿スラッグ名をつけたい場合は「wp_unique_post_slug」フィルタを使っていました。
「wp_unique_post_slug」はデフォルトのスラッグ自動生成後に通るところなので 無駄に負荷がかかる事になっています。
「pre_wp_unique_post_slug」では 自動生成前に通りますので 関数内のデフォルトロジックをスキップします。

【参考】
Add pre_wp_unique_post_slug to override post slug handling
https://core.trac.wordpress.org/ticket/21112

 

wp_targeted_link_relフィルタ

WordPressは リンクに 「target=”_blank”」をつけると画面上(スクリプトで)「rel=”noopener noreferrer”」をつけるようになっています。
5.1からは 保存時にも「target=”_blank”」がある場合に「rel=”noopener noreferrer”」をつけるようになります。

追加された wp_targeted_link_rel フィルターでは「nofollow」を追加するとか さらに特定のURLだけ「nofollow」を追加しない とかできるようになります。

【例】自サイト以外へのリンクのみ nofollow を追加する。

/**
 * Filters the rel values that are added to links with `target` attribute.
 *
 * @since 5.1.0
 *
 * @param string The rel values.
 * @param string $link_html The matched content of the link tag including all HTML attributes.
 */
function nendebcom_wp_targeted_link_rel( $rel_value, $link_html ){

	if( false === strpos( $link_html, home_url() ) ){
		$rel_value = 'nofollow';
	}
	return $rel_value;
}
add_filter( 'wp_targeted_link_rel', 'nendebcom_wp_targeted_link_rel', 10, 2 );

※現在のところ wp_targeted_link_rel が効くのは 投稿・コメント等の更新時のみになります。
 つまり、ブロックエディタだと画面更新しないので保存内容と画面が違う事になりますので注意してください。
 
 

WP Multibyte Patch

WordPress5.0から 必須のプラグインで 日本語版パッケージに ついてきたWP Multibyte Patchプラグインは含まれなくなりました
うわさでは WordPress5.1 から コアに含まれると言われていましたが、現時点ではまだ含まれていません。

「WordPress 5.0 利用開始前に知っておくべきこと」
https://ja.wordpress.org/2018/11/04/things-to-know-before-using-wordpress-5-0/

WP Multibyte Patch プラグイン
https://ja.wordpress.org/plugins/wp-multibyte-patch/

という事で 日本語で利用する場合は「WP Multibyte Patch」プラグインを入れてくださいね。

 
 

あとがき

WordPress5.2 が早くも 予定があがっています。「提案」の段階ですが 2019年4月23日リリース 予定になっています。
このあたりは 本来5.1予定のが延期になったモジュールが入ってくるみたいです。

WordPress 5.2 Schedule and Scope
https://make.wordpress.org/core/2019/02/19/wordpress-5-2-schedule-and-scope/

 
 

バックアップとってね

メジャーアッデートでは必ずバックアップをとるようにしましょう。
ファイルとデータベースのバックアップは必ずとるようにしてください。

【参考】
WordPress のバックアップ – WordPress Codex 日本語版
http://wpdocs.osdn.jp/WordPress_%E3%81%AE%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97

BackWPup – WordPress Backup Plugin
https://wordpress.org/plugins/backwpup/

できれば 本番のバックアップから テスト環境 を作って動作テストをする事をお勧めします。