この回答はGPT-4による自動生成回答です
ブロックエディタ(Gutenberg)で子カテゴリーにチェックを入れた際に親カテゴリーにもチェックが入るようにするには、JavaScriptを使用してカスタムスクリプトを作成する必要があります。以下にその方法を示します。
まず、functions.php
ファイルに以下のコードを追加して、カスタムスクリプトをエンキューします。
php
1function enqueue_custom_script() {
2 wp_enqueue_script(
3 'custom-script',
4 get_template_directory_uri() . '/js/custom-script.js',
5 array( 'wp-blocks', 'wp-element', 'wp-editor', 'wp-components', 'wp-data' ),
6 filemtime( get_template_directory() . '/js/custom-script.js' ),
7 true
8 );
9}
10add_action( 'enqueue_block_editor_assets', 'enqueue_custom_script' );
次に、テーマディレクトリ内にjs
フォルダを作成し、その中にcustom-script.js
ファイルを作成します。そして、以下のコードを追加します。
javascript
1wp.domReady(function () {
2 const { subscribe } = wp.data;
3
4 let previousCheckedCategories = [];
5
6 subscribe(() => {
7 const checkedCategories = wp.data.select('core/editor').getEditedPostAttribute('categories');
8
9 if (JSON.stringify(previousCheckedCategories) !== JSON.stringify(checkedCategories)) {
10 previousCheckedCategories = checkedCategories;
11
12 checkedCategories.forEach((categoryId) => {
13 wp.apiFetch({ path: `/wp/v2/categories/${categoryId}` }).then((category) => {
14 if (category.parent !== 0 && !checkedCategories.includes(category.parent)) {
15 wp.data.dispatch('core/editor').editPost({
16 categories: [...checkedCategories, category.parent],
17 });
18 }
19 });
20 });
21 }
22 });
23});
このスクリプトは、カテゴリーがチェックされたときに親カテゴリーが自動的にチェックされるようにするものです。記事を保存すると、親カテゴリーのチェックも正しくデータ登録されます。
ただし、この方法はブロックエディタの内部構造に依存しているため、将来的にブロックエディタがアップデートされると動作しなくなる可能性があります。そのため、定期的に動作確認を行い、必要に応じてスクリプトを更新することが重要です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。