WordPress5.4のバグとHPBのカスタム投稿でブロックエディタが使えない問題を解決

update 最終更新日:2023年4月11日 at 3:37 AM

コロナによる自粛で時間を持て余しているため、以下の通りサーバーのメンテナンスを実施しました。

既に以下リンク先の WordPress のフォーラムにも報告しておりますが、WordPress 5.4 へアップグレードすると、ブラウザ「マイクロソフト・エッジ」において、マルチファイルアップローダが動作しなくなっています。

📎 Unable to Upload Media Files in Microsoft Edge

この問題は、既知のバグとして WordPress 開発チームにもエスカレーションされているようなので、次のバージョン 5.4.1 で修正される見込みです。

しかしながら、この機能が使えないのは、やはり不便なので、以下の修正パッチ(functions.phpへの追記)を充てて、現在このシステムを運用しています。

2020.05.03 更新
このバグは、WordPress 5.4.1 のリリースで解消されました。

/* 【WordPress5.4】マルチファイルアップローダバグ対応 */
function my_admin_media_views_style() {
	if ( wp_style_is( 'media-views' ) ) {
		$style = <<<STYLE
div.moxie-shim.moxie-shim-html5,
div.moxie-shim.moxie-shim-html5 input[type="file"] {
	display: inline;
}
STYLE;
		wp_add_inline_style( 'media-views', $style );
	}
}
add_action( 'admin_enqueue_scripts', 'my_admin_media_views_style' );


次の問題です。

WordPress 5.4 になって、ブロックエディタ(通称名:Gutenberg)の機能が強化され大変使い易くなったため、新しい投稿は全てブロックエディタに統一しています。 (但し、タグ選択が出来ないのは不便)

ところが、ニュース、ギャラリーなどのカスタム投稿では、便利なブロックエディタが使えませんでした。

そこで、今回はテーマのプログラム「functions.php」に記述された二つの関数(regist_posttype_news, regist_posttype_gallery)を以下のように修正する事により、ブロックエディタでの編集が可能となりました。
それぞれの関数に、計2行を追加します。(パラメータ ‘show_in_rest’ の値を true に設定)

なお、WordPress の世界では、あまり利用者はいない模様ですが、当サイトでは、テーマの PHP プログラムは、ジャストシステム(開発元の日本IBMから2011年に移管)のホームページビルダーを使用しています。

2022.07.28 更新 – 投稿の抜粋も有効に設定する

<?php
}
function regist_posttype_news(){
	register_post_type(
		'news',
		array(
		'label'         => 'ニュース',
		'hierarchical'  => false,
		'public'        => true,
		'has_archive'   => true,
		'supports'      => array(
		'title',
		'editor',
		'thumbnail',
		'comments',
		'excerpt'	// 抜粋を有効
		),
		'menu_position' => 5,
		'show_in_rest'  => true, // ブロックエディタ対応
		'menu_icon'     => get_template_directory_uri() . '/post-types/menu_news.png'
		)
	);

	register_taxonomy(
		'newscat',
		'news',
		array(
		'label'        => 'ニュースのカテゴリー',
		'show_in_rest' => true, // ブロックエディタ対応
		'hierarchical' => true,
		)
	);
}

function regist_posttype_gallery(){
	register_post_type(
		'gallery',
		array(
		'label'         => 'ギャラリー',
		'hierarchical'  => false,
		'public'        => true,
		'has_archive'   => true,
		'supports'      => array(
		'title',
		'editor',
		'thumbnail',
		'comments',
		'excerpt'	// 抜粋を有効
		),
		'menu_position' => 5,
		'show_in_rest'  => true, // ブロックエディタ対応
		'menu_icon'     => get_template_directory_uri() . '/post-types/menu_user.png'
		)
	);

	register_taxonomy(
		'gallerycat',
		'gallery',
		array(
		'label'        => 'ギャラリーのカテゴリー',
		'show_in_rest' => true, // ブロックエディタ対応
		'hierarchical' => true,
		)
	);
}


これにより、以下のようにニュースの記事がブロックエディタで編集できるようになりました! 😀


2020.05.03 追記
imagickのインストール

この問題は、備忘録として残しておきます。
コアサーバーにおいて、標準のPHP設定では、画像処理ライブラリ ImageMagick を PHP から呼び出すモジュール imagick がインストールされていません。
そのため、Jetpack のサイトヘルスを実行すると、以下に示す「1つ以上の推奨モジュールが存在しません」のワーニング画面が表示されます。

この問題は、以下のパスにあるコアサアーバーの php.ini ファイル(php7.1)に拡張モジュールの定義を追加する事で解決します。

public_html\fast-cgi-bin\php71.ini

extension = imagick.so


php.ini を修正後、暫く経って、サイトヘルスを実行すると、以下にように「1つ以上の推奨モジュールが存在しません」のワーニングが消えます。

サイトヘルスの画面で「情報」⇒「メディア処理」を選択すると、以下のようにImageMagickが組み込まれている事が確認できます。

このエントリーをはてなブックマークに追加
X(ポスト)

コメントを残す