WordPressの無料テーマ「LION MEDIA」を使用していて、WordPressのバージョンを5.5にバージョンアップしたときに、「クラシックエディタ」にてLION MEDIAのカテゴリが選択できない不具合が発生しました。
LION MEDIAのカテゴリが選択できない場所は投稿編集画面のサイドにあるカテゴリを選択する項目、それと投稿一覧での「クイック編集」です。カテゴリ選択にチェックが入らないです。
LION MEDIAのカテゴリが選択できない不具合の解決方法を原因も含めてまとめました。WordPressテーマのLION MEDIAを使用している方の参考になればと思います。
LION MEDIAでカテゴリが選択できない原因
LION MEDIAでカテゴリが選択できない原因は、LION MEDIAの親テーマの「functions.php」5300行目付近のlimit_category_select()関数で「投稿ページのカテゴリー選択を1つのみに変更」しているjQueryの処理がうまく動作していないのが原因です。
そしてLION MEDIAでカテゴリが選択できない原因になっているjQueryの処理がうまく動作していない原因は、WordPress5.5から「jQuery migrate」が同梱されなくなったのが原因です。
WordPress本体の5.5へのアップデートでjQueryの扱い方が変更している
LION MEDIAがjQueryでカテゴリー選択を1つのみにする仕様にしている
上記の2つにLION MEDIAでカテゴリが選択できない原因を絞れるので解決方法を紹介します。
LION MEDIAのカテゴリを選択可能にする解決方法
LION MEDIAのカテゴリを選択可能にする解決方法としては3つの解決方法があります。
- 子テーマのfunctions.phpでの解決方法
- 親テーマのfunctions.phpでの解決方法
- LION MEDIAにプラグインを使用して一時的な解決
上記3つの具体的なやり方を1つずつ説明していくので読み進めてみてください。
子テーマfunctions.phpでの解決方法
LION MEDIAのカテゴリが選択できない解決方法として、子テーマのfunctions.phpを使用した解決方法は、まずLION MEDIAの子テーマ「lionmedia-child」フォルダ内の「functions.php」を開きます。
そして開いた子テーマのfunctions.phpに以下のphpコードを記述します。
function lion_category_remove() {
remove_action('admin_print_footer_scripts','limit_category_select');
}
add_action('after_setup_theme','lion_category_remove');
このPHPコードはLION MEDIAの親テーマのfunctions.php、5300行目で「投稿ページのカテゴリー選択を1つのみに変更している」limit_category_select()関数をフックしているadmin_print_footer_scriptsへのアクションフックを、子テーマでWordPressのremove_action関数を使用して外しています。
またLION MEDIAでカテゴリが選択できなくなった機能は親テーマのfunctions.phpに組み込まれているので、子テーマに記述したremove_actionが親のfunctions.phpを読み込んだ後に実行できるようにafter_setup_themeのタイミングで実行してます。
そうするとLION MEDIAの子テーマ(functions.php)に記述したremove_actionのフックが効いて、LION MEDIAでカテゴリが選択できなかった原因のjQueryを処理しないため、LION MEDIAで投稿画面とクイック編集でのカテゴリの選択が可能になり解決します。
どんなことをLION MEDIAの子テーマのfunctions.phpに記述してるかの説明は少し難しいと思う場合もあるかもしれませんが、LION MEDIAのカテゴリが選択できないときの最も良い解決方法です。
親テーマfunctions.phpでの解決方法
LION MEDIAのカテゴリが選択できないときに親テーマのfunctions.phpで解決する方法も説明します。
LION MEDIAで親テーマのfunctions.phpを開いた5300行目付近のjQueryを修正します。
//////////////////////////////////////////////////
//投稿ページカテゴリー選択を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' );
難しそうなjQueryのコードが記述してありますが、LION MEDIAの親テーマfunctions.phpのテンプレート内で修正する記述はattr(‘checked’, false);のうちのfalseの記述です。カテゴリーを選択するときのチェックボックスにfalseでチェックが入らないようにしているのですね。
attr(‘checked’, false);のfalseを削除してtrueに記述を書き換えます。該当の部分で削除するfalseは2箇所しかないので特定できるかと思います。
修正するfalseの記述は、コメント文にも記載がありますが、「投稿画面のカテゴリー選択を制限」と「クイック編集のカテゴリー選択を制限」をしているjQueryのコードです。2つのfalseをtrueにしてください。
trueにすることでLION MEDIAの投稿編集画面とクイック編集でのカテゴリ選択が制限されなくなり、LION MEDIAでカテゴリが選択できない不具合が解決できます。
trueに修正後、カテゴリのチェックボックスにチェックを入れると、まずは全てのカテゴリにチェックが入るようになります。使用しないカテゴリはチェックを外して操作するようにはなりますが、jQueryの知識不足なためtrueにして解決するのが精一杯でした。
LION MEDIAのカテゴリーが選択できない不具合を解決する方法としては有効になります。
LION MEDIAにプラグインを使用しての解決策
LION MEDIAのカテゴリが選択できないときの原因を解決する方法として、テンプレートファイルの操作に不慣れな場合には、WordPressのプラグインでの一時的な解決策もあります。
使用するWordPressのプラグインは「Enable jQuery Migrate Helper」です。
カテゴリが選択できないLION MEDIAのテーマでEnable jQuery Migrate Helperを有効化すると、クラシックエディタで今までどうりに投稿画面とクイック編集でカテゴリ選択ができるようになり、チェックが入らなかった不具合を解決できます。
プラグインを使用してLION MEDIAのカテゴリを選択できるように解決するのが1番簡単ですが、一時的な解決策として作成されたWordPressのプラグインのようです。
それなので「一時的にカテゴリを選択できるように戻そう」的な解決方法に使用して、早めにLION MEDIAの子テーマ「functions.phpでremove_actionを記述する解決方法」を実装するようにしてください。
LION MEDIAのカテゴリが不具合になり考えたこと
LION MEDIAのカテゴリが選択できない解決方法の3つのいずれかを使用すれば不具合は解決しますが、LION MEIAのカテゴリが選択できなくなるという不具合になり考えたことがあります。
LION MEDIAからテーマを変更するのを検討するべき。
LION MEDIAを無料で使わせていただいているので、自分でメンテナンスするのを前提で使用してますが、今回はLION MEDIAのカテゴリが選択できなくなって記事を書く足止めを食らってしまい考えるようになりました。
LION MEDIAのデザインを維持したいのでWordPressテーマ「THE THOR」を検討するのべき時がきたのかな?と考えました。
「THE THOR」を使用してる知り合いにログインさせてもらい、気になった設定などを半日いじらせてもらいましたが、LION MEDIAを2年4ヶ月使用してきた私の判断では、LION MEDIAを使用しているブログのデザインを維持できる機能が備わっている、そしてテーマ更新もされているので、今回のようなLION MEDIAのカテゴリが選択できないちょっとした不具合にも悩む必要が無くなります。
でも2年もLION MEDIAを使用していると愛着が湧くので困ったものです。