【WordPress】Classic Editorで、カテゴリが選択できなくなってしまった場合の原因と対応方法

wordpress classic editor

WordPress 5.5 リリース

WordPressのバージョン5.5がリリースされました。

いくつかの改善と、不具合が発生しているようです。

直近のクリティカルな不具合の原因と対応方法をまとめます。

Classic Editorプラグイン使用時、カテゴリが選択できないケース

Classic Editorプラグイン使用時、カテゴリが選択できないことが一部の環境で発生しています。すべての環境ではなく、特定のテーマがもつ機能により、カテゴリが選択できない現象が発生しています。

上記画像では、カテゴリにチェックをすると、チェックボックスがフォーカスされるものの、チェックマークがONになりません。

クイック編集でも同様に選択できません。

カテゴリチェックができない原因

カテゴリにチェックができない理由が、カテゴリチェック時に制限等を行う機能が追加されている場合に現象が発生することを確認しました。

例えばjavascriptで、カテゴリチェックを1つに制限している場合などです。

カテゴリチェック時にjavascriptで機能を制限等しているかの確認をしましょう。

対応方法

ここでは、カテゴリチェックを1つに絞っているケースに対する対応方法を記載します。

テーマLION BLOGでは、カテゴリ選択を1つに絞っています。

今回のケースでは、親テーマでカテゴリチェック制限をしている機能を、子テーマで無効化します。

具体的には下記コード

function limit_category_select() {?>
	<script type="text/javascript">
	jQuery(function($) {
		// 投稿画面のカテゴリー選択を制限
		var categorydiv = $( '#categorydiv input[type=checkbox]' );
		categorydiv.click( function() {
			$(this).parents( '#categorydiv' ).find( 'input[type=checkbox]' ).attr('checked', false);
			$(this).attr( 'checked', true );
		});
		// クイック編集のカテゴリー選択を制限
		var inline_edit_col_center = $( '.inline-edit-col-center input[type=checkbox]' );
		inline_edit_col_center.click( function() {
			$(this).parents( '.inline-edit-col-center' ).find( 'input[type=checkbox]' ).attr( 'checked', false );
			$(this).attr( 'checked', true );
		});
		$( '#categorydiv #category-pop > ul > li:first-child, #categorydiv #category-all > ul > li:first-child, .inline-edit-col-center ul.category-checklist > li:first-child' ).before( '<p style="padding-top:5px;">カテゴリーは1つしか選択できません</p>' );
	});
	</script>
  <?php }
add_action( 'admin_print_footer_scripts', 'limit_category_select' );

下記部分で、カテゴリチェックした他のもののチェックを外しています。

// 投稿画面のカテゴリー選択を制限
		var categorydiv = $( '#categorydiv input[type=checkbox]' );
		categorydiv.click( function() {
			$(this).parents( '#categorydiv' ).find( 'input[type=checkbox]' ).attr('checked', false);
			$(this).attr( 'checked', true );
		});

子テーマで、上記部分を無効化するためにremove_action()を実装します。

function remove_action_limit_category_select() {
  remove_action("admin_print_footer_scripts","limit_category_select");
}
add_action("after_setup_theme","remove_action_limit_category_select");

カテゴリがチェックできるようになりました。

[追記]jquery-migrate.min.js が読み込まれなくなったことが原因

WordPress 5.5 で、デフォルトで jquery-migrate.min.js が読み込まれなくなったのが、各種プラグインが動作しなくなった原因のようです。

WordPress 開発の下記プラグインの導入をおすすめします。

Enable jQuery Migrate Helper

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA