From 29dfea558b5e54699dab692b20987c385cf9fb24 Mon Sep 17 00:00:00 2001 From: mtdkei Date: Fri, 17 Jan 2025 17:47:10 +0900 Subject: [PATCH 01/15] Add $exclusion --- modules/content-archive.php | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/modules/content-archive.php b/modules/content-archive.php index f8e7c90..e58bf8e 100644 --- a/modules/content-archive.php +++ b/modules/content-archive.php @@ -123,18 +123,17 @@ function vkpdc_render_post_item( $post = null, $attributes = [] ) { $has_pattern_id = ! empty( $attributes['pattern_id'] ); if ( $has_taxonomies ) { - // タクソノミーの取得. + // タクソノミーの取得 $args = array( 'template' => '
%s
%l
', 'term_template' => '%2$s', ); $taxonomies = get_the_taxonomies( $post->ID, $args ); - // 除外するタクソノミー. - $exclusion = array( 'product_type', 'language' ); - $exclusion = apply_filters( 'vkpdc_archive_display_taxonomies_exclusion', $exclusion ); + // 除外するタクソノミー + $exclusion = apply_filters( 'vkpdc_archive_display_taxonomies_exclusion', $attributes['excluded_taxonomies'] ); - // 除外するタクソノミーを削除. + // 除外するタクソノミーを削除 if ( is_array( $exclusion ) ) { foreach ( $exclusion as $key => $value ) { unset( $taxonomies[ $value ] ); @@ -604,4 +603,4 @@ function vkpdc_add_placeholder_articles( $query, $attributes ) { } return $html; -} \ No newline at end of file +} From 7423e6e8dedec9b7924e6ffa3269fc37639378b8 Mon Sep 17 00:00:00 2001 From: mtdkei Date: Fri, 17 Jan 2025 17:47:53 +0900 Subject: [PATCH 02/15] Add excluded_taxonomies --- blocks/src/pattern-list/block.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/blocks/src/pattern-list/block.json b/blocks/src/pattern-list/block.json index 4af8466..fc9a1c3 100644 --- a/blocks/src/pattern-list/block.json +++ b/blocks/src/pattern-list/block.json @@ -38,6 +38,13 @@ "type": "boolean", "default": true }, + "excluded_taxonomies": { + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, "pattern_id": { "type": "boolean", "default": true From 0e7bf7bc4b8cf71bc3b5d2677ea4bc76b6e12e5c Mon Sep 17 00:00:00 2001 From: mtdkei Date: Fri, 17 Jan 2025 17:48:09 +0900 Subject: [PATCH 03/15] Add excluded_taxonomies --- blocks/src/pattern-list/edit.js | 81 +++++++++++++++++++++++++-------- 1 file changed, 63 insertions(+), 18 deletions(-) diff --git a/blocks/src/pattern-list/edit.js b/blocks/src/pattern-list/edit.js index bcd485e..67915ae 100644 --- a/blocks/src/pattern-list/edit.js +++ b/blocks/src/pattern-list/edit.js @@ -9,9 +9,10 @@ import { RangeControl, __experimentalUnitControl as UnitControl, } from '@wordpress/components'; -import { useEffect } from '@wordpress/element'; +import { useEffect, useState } from '@wordpress/element'; import ServerSideRender from '@wordpress/server-side-render'; import { InspectorControls, useBlockProps } from '@wordpress/block-editor'; +import apiFetch from '@wordpress/api-fetch'; export default function PostListEdit( props ) { const { attributes, setAttributes } = props; @@ -19,20 +20,21 @@ export default function PostListEdit( props ) { numberPosts, order, orderby, - display_author, //eslint-disable-line camelcase - display_date_publiched, //eslint-disable-line camelcase - display_date_modified, //eslint-disable-line camelcase - display_new, //eslint-disable-line camelcase - display_taxonomies, //eslint-disable-line camelcase - pattern_id, //eslint-disable-line camelcase - display_btn_view, //eslint-disable-line camelcase - display_btn_view_text, //eslint-disable-line camelcase - display_btn_copy, //eslint-disable-line camelcase - display_paged, //eslint-disable-line camelcase - display_image, //eslint-disable-line camelcase - thumbnail_size, //eslint-disable-line camelcase - new_date, //eslint-disable-line camelcase - new_text, //eslint-disable-line camelcase + display_author, + display_date_publiched, + display_date_modified, + display_new, + display_taxonomies, + excluded_taxonomies, + pattern_id, + display_btn_view, + display_btn_view_text, + display_btn_copy, + display_paged, + display_image, + thumbnail_size, + new_date, + new_text, colWidthMinMobile, colWidthMinTablet, colWidthMinPC, @@ -41,6 +43,7 @@ export default function PostListEdit( props ) { } = attributes; const blockProps = useBlockProps(); + const [taxonomies, setTaxonomies] = useState([]); useEffect(() => { if (display_new === undefined) setAttributes({ display_new: true }); @@ -62,9 +65,43 @@ export default function PostListEdit( props ) { if (!colWidthMinPC) setAttributes({ colWidthMinPC: '300px' }); if (!gap) setAttributes({ gap: '1.5rem' }); if (!gapRow) setAttributes({ gapRow: '1.5rem' }); + if (!excluded_taxonomies) setAttributes({ excluded_taxonomies: [] }); + // Fetch taxonomies for vk-patterns + apiFetch({ path: '/wp/v2/taxonomies?type=vk-patterns' }).then((data) => { + const taxonomyList = Object.keys(data).map((key) => ({ + slug: key, + label: data[key].name, + })); + setTaxonomies(taxonomyList); + }); }, []); + useEffect(() => { + // すべてのタクソノミーが除外された場合、display_taxonomies のチェックを外す + if (excluded_taxonomies.length === taxonomies.length) { + setAttributes({ display_taxonomies: false }); + } + }, [excluded_taxonomies, taxonomies]); + + const handleTaxonomyChange = (taxonomySlug) => { + const newExclusions = excluded_taxonomies.includes(taxonomySlug) + ? excluded_taxonomies.filter((item) => item !== taxonomySlug) + : [...excluded_taxonomies, taxonomySlug]; + setAttributes({ excluded_taxonomies: newExclusions }); + }; + + const handleDisplayTaxonomiesChange = (checked) => { + setAttributes({ display_taxonomies: checked }); + if (checked) { + // チェックがつけられたとき、すべてのタクソノミーを表示 + setAttributes({ excluded_taxonomies: [] }); + } else { + // チェックが外されたとき、すべてのタクソノミーを除外 + setAttributes({ excluded_taxonomies: taxonomies.map(t => t.slug) }); + } + }; + return ( <> @@ -149,8 +186,16 @@ export default function PostListEdit( props ) { setAttributes({ display_taxonomies: checked })} + onChange={handleDisplayTaxonomiesChange} /> + {display_taxonomies && taxonomies.map((taxonomy) => ( + handleTaxonomyChange(taxonomy.slug)} + /> + ))} setAttributes({ new_date: parseInt(value) }) } @@ -228,7 +273,7 @@ export default function PostListEdit( props ) { /> setAttributes({ new_text: value })} />

{__('View Button Text', 'vk-pattern-directory-creator')}

From aa5f14124f5151f48f22afcc9bde88b41a3be053 Mon Sep 17 00:00:00 2001 From: mtdkei Date: Fri, 17 Jan 2025 17:48:42 +0900 Subject: [PATCH 04/15] Add excluded_taxonomies --- blocks/src/pattern-list/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/blocks/src/pattern-list/index.js b/blocks/src/pattern-list/index.js index 2783723..0ca6768 100644 --- a/blocks/src/pattern-list/index.js +++ b/blocks/src/pattern-list/index.js @@ -27,6 +27,7 @@ export const settings = { display_date_modified: false, display_new: true, display_taxonomies: true, + excluded_taxonomies: [], pattern_id: true, display_btn_view: true, display_btn_copy: true, From a4982abe41ddf7873276b4af642d22684375ca7f Mon Sep 17 00:00:00 2001 From: mtdkei Date: Fri, 17 Jan 2025 17:49:25 +0900 Subject: [PATCH 05/15] Add excluded_taxonomies --- blocks/src/pattern-list/index.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/blocks/src/pattern-list/index.php b/blocks/src/pattern-list/index.php index 27c0850..c8823a9 100644 --- a/blocks/src/pattern-list/index.php +++ b/blocks/src/pattern-list/index.php @@ -66,6 +66,13 @@ function vkpdc_add_pattern_list_block() { 'type' => 'boolean', 'default' => true, ), + 'excluded_taxonomies' => array( + 'type' => 'array', + 'default' => array(), + 'items' => array( + 'type' => 'string', + ), + ), 'pattern_id' => array( 'type' => 'boolean', 'default' => true, From 00b7d72c29d40b02ee6a6b176bea959a975098a5 Mon Sep 17 00:00:00 2001 From: mtdkei Date: Fri, 17 Jan 2025 17:57:42 +0900 Subject: [PATCH 06/15] Add padding --- blocks/src/pattern-list/edit.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/blocks/src/pattern-list/edit.js b/blocks/src/pattern-list/edit.js index 67915ae..d03ac70 100644 --- a/blocks/src/pattern-list/edit.js +++ b/blocks/src/pattern-list/edit.js @@ -188,14 +188,16 @@ export default function PostListEdit( props ) { checked={display_taxonomies} onChange={handleDisplayTaxonomiesChange} /> - {display_taxonomies && taxonomies.map((taxonomy) => ( - handleTaxonomyChange(taxonomy.slug)} - /> - ))} +
+ {display_taxonomies && taxonomies.map((taxonomy) => ( + handleTaxonomyChange(taxonomy.slug)} + /> + ))} +
Date: Fri, 17 Jan 2025 18:20:44 +0900 Subject: [PATCH 07/15] Add: $excluded_taxonomies --- modules/content-archive-settings.php | 59 +++++++++++++++++----------- 1 file changed, 36 insertions(+), 23 deletions(-) diff --git a/modules/content-archive-settings.php b/modules/content-archive-settings.php index a6be000..d5bfa40 100644 --- a/modules/content-archive-settings.php +++ b/modules/content-archive-settings.php @@ -64,6 +64,7 @@ function vkpdc_get_default_options() { 'orderby' => __( 'date', 'vk-pattern-directory-creator' ), 'display_new' => 1, 'display_taxonomies' => 1, + 'excluded_taxonomies' => [], 'pattern_id' => 1, 'display_date_publiched'=> 1, 'display_date_modified' => 1, @@ -121,15 +122,12 @@ function vkpdc_save_options() { check_admin_referer( 'vkpdc_save_options', 'vkpdc_settings_nonce' ); $defaults = vkpdc_get_default_options(); + // 既存のオプションを取得 foreach ( vkpdc_get_default_options() as $key => $default ) { $current_value = get_option( 'vkpdc_' . $key ); } - // フック名の存在を検証 - if ( ! empty( $hook_name ) && ! has_filter( $hook_name ) ) { - wp_die( __( 'The specified hook is not valid.', 'vk-pattern-directory-creator' ) ); - } - + // チェックボックスの処理 $checkbox_fields = [ 'display_new', 'display_taxonomies', @@ -141,27 +139,29 @@ function vkpdc_save_options() { 'display_btn_copy', ]; - if ( isset( $_POST['reset'] ) ) { - foreach ( $defaults as $key => $value ) { - update_option( 'vkpdc_' . $key, $value ); - } - return __( 'Settings reset to default.', 'vk-pattern-directory-creator' ); + foreach ( $checkbox_fields as $key ) { + $value = isset( $_POST[ $key ] ) ? 1 : 0; + update_option( 'vkpdc_' . $key, $value ); + } + + // excluded_taxonomies の処理 + if ( isset( $_POST['excluded_taxonomies'] ) ) { + $excluded_taxonomies = array_map( 'sanitize_text_field', $_POST['excluded_taxonomies'] ); + update_option( 'vkpdc_excluded_taxonomies', $excluded_taxonomies ); } else { - foreach ( $checkbox_fields as $key ) { - $value = isset( $_POST[ $key ] ) ? 1 : 0; - update_option( 'vkpdc_' . $key, $value ); - } + update_option( 'vkpdc_excluded_taxonomies', [] ); // チェックが外された場合は空配列を保存 + } - foreach ( $defaults as $key => $default ) { - if ( ! in_array( $key, $checkbox_fields, true ) ) { - $value = isset( $_POST[ $key ] ) ? sanitize_text_field( $_POST[ $key ] ) : $default; - update_option( 'vkpdc_' . $key, $value ); - } + // その他のオプションの保存 + foreach ( $defaults as $key => $default ) { + if ( ! in_array( $key, $checkbox_fields, true ) ) { + $value = isset( $_POST[ $key ] ) ? sanitize_text_field( $_POST[ $key ] ) : $default; + update_option( 'vkpdc_' . $key, $value ); } - - wp_cache_flush(); - return __( 'Settings saved.', 'vk-pattern-directory-creator' ); } + + wp_cache_flush(); + return __( 'Settings saved.', 'vk-pattern-directory-creator' ); } /** @@ -224,12 +224,13 @@ function vkpdc_execute_shortcode_on_hook() { $options = vkpdc_get_default_options(); $shortcode = sprintf( - '[vkpdc_archive_loop numberPosts="%d" order="%s" orderby="%s" display_new="%d" display_taxonomies="%d" pattern_id="%d" display_date_publiched="%d" display_date_modified="%d" display_author="%d" display_image="%s" thumbnail_size="%s" display_btn_view="%d" display_btn_copy="%d" display_btn_view_text="%s" new_date="%d" new_text="%s" colWidthMinMobile="%s" colWidthMinMobileTablet="%s" colWidthMinMobilePC="%s" gap="%s" gapRow="%s"]', + '[vkpdc_archive_loop numberPosts="%d" order="%s" orderby="%s" display_new="%d" display_taxonomies="%d" excluded_taxonomies="%s" pattern_id="%d" display_date_publiched="%d" display_date_modified="%d" display_author="%d" display_image="%s" thumbnail_size="%s" display_btn_view="%d" display_btn_copy="%d" display_btn_view_text="%s" new_date="%d" new_text="%s" colWidthMinMobile="%s" colWidthMinMobileTablet="%s" colWidthMinMobilePC="%s" gap="%s" gapRow="%s"]', intval( $options['numberPosts'] ), esc_attr( $options['order'] ), esc_attr( $options['orderby'] ), intval( $options['display_new'] ), intval( $options['display_taxonomies'] ), + esc_attr( $options['excluded_taxonomies'] ), intval( $options['pattern_id'] ), intval( $options['display_date_publiched'] ), intval( $options['display_date_modified'] ), @@ -284,6 +285,9 @@ function vkpdc_render_settings_page() { $options[ $key ] = get_option( 'vkpdc_' . $key, $default ); } + // タクソノミーの取得 + $taxonomies = get_taxonomies( array( 'object_type' => array( 'vk-patterns' ) ), 'objects' ); + ?>

@@ -344,6 +348,15 @@ function vkpdc_render_settings_page() { + + + + + name, (array) get_option( 'vkpdc_excluded_taxonomies', [] ) ) ); ?> /> +
+ + + From a9b23ad569aef3490b9926a079cdab7358cc53a6 Mon Sep 17 00:00:00 2001 From: mtdkei Date: Mon, 20 Jan 2025 09:20:53 +0900 Subject: [PATCH 08/15] Add setting --- modules/content-archive.php | 47 ++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/modules/content-archive.php b/modules/content-archive.php index e58bf8e..f51a149 100644 --- a/modules/content-archive.php +++ b/modules/content-archive.php @@ -122,34 +122,33 @@ function vkpdc_render_post_item( $post = null, $attributes = [] ) { $has_taxonomies = ! empty( $attributes['display_taxonomies'] ); $has_pattern_id = ! empty( $attributes['pattern_id'] ); - if ( $has_taxonomies ) { - // タクソノミーの取得 - $args = array( - 'template' => '
%s
%l
', - 'term_template' => '%2$s', - ); - $taxonomies = get_the_taxonomies( $post->ID, $args ); - - // 除外するタクソノミー - $exclusion = apply_filters( 'vkpdc_archive_display_taxonomies_exclusion', $attributes['excluded_taxonomies'] ); - - // 除外するタクソノミーを削除 - if ( is_array( $exclusion ) ) { - foreach ( $exclusion as $key => $value ) { - unset( $taxonomies[ $value ] ); - } + // 除外するタクソノミー + $excluded_taxonomies = get_option( 'vkpdc_excluded_taxonomies', [] ); // 除外するタクソノミーを取得 + $exclusion = apply_filters( 'vkpdc_archive_display_taxonomies_exclusion', $excluded_taxonomies ); + + // タクソノミーの取得 + $args = array( + 'template' => '
%s
%l
', + 'term_template' => '%2$s', + ); + $taxonomies = get_the_taxonomies( $post->ID, $args ); + + // 除外するタクソノミーを削除 + if ( is_array( $exclusion ) ) { + foreach ( $exclusion as $key => $value ) { + unset( $taxonomies[ $value ] ); } - - $taxonomy_html .= '
'; + } + + $taxonomy_html .= '
'; - // タクソノミーごとにタームを表示 - if ( ! empty( $taxonomies ) ) { - foreach ( $taxonomies as $key => $value ) { - $taxonomy_html .= '
' . $value . '
'; - } + // タクソノミーごとにタームを表示 + if ( ! empty( $taxonomies ) ) { + foreach ( $taxonomies as $key => $value ) { + $taxonomy_html .= '
' . $value . '
'; } - $taxonomy_html .= '
'; } + $taxonomy_html .= '
'; // パターンIDはタクソノミーの有無に関わらず出力 if ( $has_pattern_id ) { From 6191f7054ebda292c2ee55ad8ab8437ddb626e35 Mon Sep 17 00:00:00 2001 From: mtdkei Date: Mon, 20 Jan 2025 10:04:07 +0900 Subject: [PATCH 09/15] Fix: changed position --- blocks/src/pattern-list/edit.js | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/blocks/src/pattern-list/edit.js b/blocks/src/pattern-list/edit.js index d03ac70..480f8a7 100644 --- a/blocks/src/pattern-list/edit.js +++ b/blocks/src/pattern-list/edit.js @@ -188,16 +188,6 @@ export default function PostListEdit( props ) { checked={display_taxonomies} onChange={handleDisplayTaxonomiesChange} /> -
- {display_taxonomies && taxonomies.map((taxonomy) => ( - handleTaxonomyChange(taxonomy.slug)} - /> - ))} -
- )}

{__('New mark option', 'vk-pattern-directory-creator')}

+ )} +

{__('Exclude Taxonomies', 'vk-pattern-directory-creator')}

+ {display_taxonomies && taxonomies.map((taxonomy) => ( + handleTaxonomyChange(taxonomy.slug)} + /> + ))} +

{__('New mark option', 'vk-pattern-directory-creator')}

Date: Tue, 21 Jan 2025 13:51:36 +0900 Subject: [PATCH 10/15] Fix: $exclusion --- modules/content-archive.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/content-archive.php b/modules/content-archive.php index f51a149..7f59338 100644 --- a/modules/content-archive.php +++ b/modules/content-archive.php @@ -124,7 +124,10 @@ function vkpdc_render_post_item( $post = null, $attributes = [] ) { // 除外するタクソノミー $excluded_taxonomies = get_option( 'vkpdc_excluded_taxonomies', [] ); // 除外するタクソノミーを取得 - $exclusion = apply_filters( 'vkpdc_archive_display_taxonomies_exclusion', $excluded_taxonomies ); + $exclusion = apply_filters( 'vkpdc_archive_display_taxonomies_exclusion', + vkpdc_is_block_theme() ? $attributes['excluded_taxonomies'] : + (empty($attributes['excluded_taxonomies']) ? $excluded_taxonomies : $attributes['excluded_taxonomies']) + ); // タクソノミーの取得 $args = array( From 14d07c41c9228a08c2462416c493547b728fa145 Mon Sep 17 00:00:00 2001 From: mtdkei Date: Tue, 21 Jan 2025 13:56:59 +0900 Subject: [PATCH 11/15] Fix excluded_taxonomies --- modules/content-archive-settings.php | 37 ++++++++++++++++++---------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/modules/content-archive-settings.php b/modules/content-archive-settings.php index d5bfa40..55408c2 100644 --- a/modules/content-archive-settings.php +++ b/modules/content-archive-settings.php @@ -122,11 +122,22 @@ function vkpdc_save_options() { check_admin_referer( 'vkpdc_save_options', 'vkpdc_settings_nonce' ); $defaults = vkpdc_get_default_options(); - // 既存のオプションを取得 - foreach ( vkpdc_get_default_options() as $key => $default ) { - $current_value = get_option( 'vkpdc_' . $key ); + // excluded_taxonomies の処理 + if ( isset( $_POST['excluded_taxonomies'] ) ) { + $excluded_taxonomies = $_POST['excluded_taxonomies']; // そのまま保存 + update_option( 'vkpdc_excluded_taxonomies', $excluded_taxonomies ); + // デバッグ用にログ出力 + error_log( 'Excluded taxonomies saved: ' . print_r( $excluded_taxonomies, true ) ); + } else { + update_option( 'vkpdc_excluded_taxonomies', [] ); // チェックが外された場合は空配列を保存 + // デバッグ用にログ出力 + error_log( 'Excluded taxonomies set to empty array.' ); } + // 保存後にデータベースから取得して確認 + $saved_excluded_taxonomies = get_option( 'vkpdc_excluded_taxonomies', [] ); + error_log( 'Current excluded taxonomies: ' . print_r( $saved_excluded_taxonomies, true ) ); + // チェックボックスの処理 $checkbox_fields = [ 'display_new', @@ -138,20 +149,12 @@ function vkpdc_save_options() { 'display_btn_view', 'display_btn_copy', ]; - + foreach ( $checkbox_fields as $key ) { $value = isset( $_POST[ $key ] ) ? 1 : 0; update_option( 'vkpdc_' . $key, $value ); } - // excluded_taxonomies の処理 - if ( isset( $_POST['excluded_taxonomies'] ) ) { - $excluded_taxonomies = array_map( 'sanitize_text_field', $_POST['excluded_taxonomies'] ); - update_option( 'vkpdc_excluded_taxonomies', $excluded_taxonomies ); - } else { - update_option( 'vkpdc_excluded_taxonomies', [] ); // チェックが外された場合は空配列を保存 - } - // その他のオプションの保存 foreach ( $defaults as $key => $default ) { if ( ! in_array( $key, $checkbox_fields, true ) ) { @@ -160,6 +163,11 @@ function vkpdc_save_options() { } } + update_option('vkpdc_excluded_taxonomies', $excluded_taxonomies, false); + $excluded_taxonomies = get_option( 'vkpdc_excluded_taxonomies', [] ); + + + wp_cache_flush(); return __( 'Settings saved.', 'vk-pattern-directory-creator' ); } @@ -288,6 +296,9 @@ function vkpdc_render_settings_page() { // タクソノミーの取得 $taxonomies = get_taxonomies( array( 'object_type' => array( 'vk-patterns' ) ), 'objects' ); + // 保存された excluded_taxonomies を取得 + $saved_excluded_taxonomies = get_option( 'vkpdc_excluded_taxonomies', [] ); + ?>

@@ -352,7 +363,7 @@ function vkpdc_render_settings_page() { - name, (array) get_option( 'vkpdc_excluded_taxonomies', [] ) ) ); ?> /> + name, (array) $saved_excluded_taxonomies, true ) ); ?> />
From 79477ca994e9fe1b49b61e647e9710360f3f782f Mon Sep 17 00:00:00 2001 From: mtdkei Date: Tue, 21 Jan 2025 13:57:10 +0900 Subject: [PATCH 12/15] Fix excluded_taxonomies --- modules/content-archive.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/content-archive.php b/modules/content-archive.php index f51a149..7f59338 100644 --- a/modules/content-archive.php +++ b/modules/content-archive.php @@ -124,7 +124,10 @@ function vkpdc_render_post_item( $post = null, $attributes = [] ) { // 除外するタクソノミー $excluded_taxonomies = get_option( 'vkpdc_excluded_taxonomies', [] ); // 除外するタクソノミーを取得 - $exclusion = apply_filters( 'vkpdc_archive_display_taxonomies_exclusion', $excluded_taxonomies ); + $exclusion = apply_filters( 'vkpdc_archive_display_taxonomies_exclusion', + vkpdc_is_block_theme() ? $attributes['excluded_taxonomies'] : + (empty($attributes['excluded_taxonomies']) ? $excluded_taxonomies : $attributes['excluded_taxonomies']) + ); // タクソノミーの取得 $args = array( From 0f17975e8b0e19816e855c9b325dd4abca89e728 Mon Sep 17 00:00:00 2001 From: mtdkei Date: Tue, 21 Jan 2025 13:57:42 +0900 Subject: [PATCH 13/15] Fix excluded_taxonomies --- blocks/src/pattern-list/edit.js | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/blocks/src/pattern-list/edit.js b/blocks/src/pattern-list/edit.js index 480f8a7..c482e08 100644 --- a/blocks/src/pattern-list/edit.js +++ b/blocks/src/pattern-list/edit.js @@ -77,13 +77,6 @@ export default function PostListEdit( props ) { }); }, []); - useEffect(() => { - // すべてのタクソノミーが除外された場合、display_taxonomies のチェックを外す - if (excluded_taxonomies.length === taxonomies.length) { - setAttributes({ display_taxonomies: false }); - } - }, [excluded_taxonomies, taxonomies]); - const handleTaxonomyChange = (taxonomySlug) => { const newExclusions = excluded_taxonomies.includes(taxonomySlug) ? excluded_taxonomies.filter((item) => item !== taxonomySlug) @@ -188,6 +181,14 @@ export default function PostListEdit( props ) { checked={display_taxonomies} onChange={handleDisplayTaxonomiesChange} /> + {display_taxonomies && taxonomies.map((taxonomy) => ( + handleTaxonomyChange(taxonomy.slug)} + /> + ))} - )} -

{__('Exclude Taxonomies', 'vk-pattern-directory-creator')}

- {display_taxonomies && taxonomies.map((taxonomy) => ( - handleTaxonomyChange(taxonomy.slug)} - /> - ))} -

{__('New mark option', 'vk-pattern-directory-creator')}

+ )}

{__('New mark option', 'vk-pattern-directory-creator')}

Date: Tue, 21 Jan 2025 15:13:36 +0900 Subject: [PATCH 14/15] Fix: Exclude Taxonomies --- blocks/src/pattern-list/edit.js | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/blocks/src/pattern-list/edit.js b/blocks/src/pattern-list/edit.js index c482e08..f3e763e 100644 --- a/blocks/src/pattern-list/edit.js +++ b/blocks/src/pattern-list/edit.js @@ -65,7 +65,7 @@ export default function PostListEdit( props ) { if (!colWidthMinPC) setAttributes({ colWidthMinPC: '300px' }); if (!gap) setAttributes({ gap: '1.5rem' }); if (!gapRow) setAttributes({ gapRow: '1.5rem' }); - if (!excluded_taxonomies) setAttributes({ excluded_taxonomies: [] }); + if (excluded_taxonomies) setAttributes({ excluded_taxonomies: [] }); // Fetch taxonomies for vk-patterns apiFetch({ path: '/wp/v2/taxonomies?type=vk-patterns' }).then((data) => { @@ -181,14 +181,6 @@ export default function PostListEdit( props ) { checked={display_taxonomies} onChange={handleDisplayTaxonomiesChange} /> - {display_taxonomies && taxonomies.map((taxonomy) => ( - handleTaxonomyChange(taxonomy.slug)} - /> - ))} - )}

{__('New mark option', 'vk-pattern-directory-creator')}

+ )} + {display_taxonomies && ( + <> +

{__('Exclude Taxonomies', 'vk-pattern-directory-creator')}

+ {taxonomies.map((taxonomy) => ( + handleTaxonomyChange(taxonomy.slug)} + /> + ))} + + )} +

{__('New mark option', 'vk-pattern-directory-creator')}

); -} +} \ No newline at end of file From 5054a1bf694f2d77c09339b417474e753766f5ca Mon Sep 17 00:00:00 2001 From: mtdkei Date: Tue, 21 Jan 2025 15:14:12 +0900 Subject: [PATCH 15/15] Fix: padding --- modules/content-archive-settings.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/content-archive-settings.php b/modules/content-archive-settings.php index 55408c2..2fd4f6e 100644 --- a/modules/content-archive-settings.php +++ b/modules/content-archive-settings.php @@ -361,7 +361,7 @@ function vkpdc_render_settings_page() { - + name, (array) $saved_excluded_taxonomies, true ) ); ?> />