Conflict using multiple taxonomy advanced fields in same block
- This topic has 4 replies, 2 voices, and was last updated 3 years, 4 months ago by
alpha.media.
-
AuthorPosts
-
November 5, 2021 at 4:23 AM #31742
alpha.media
ParticipantI am running into in issue with having two taxonomy advanced fields that populate using WordPress categories for a featured content section I am building.
On the very first save, everything is fine. I select my category in one select field and another category in the other. However, when I go back to edit the block, they both somehow get set to the same category. I am able to then re-select and save and it works again until I go back to edit the page.
It appears there is an issue with using multiple taxonomy select boxes that pull from wordpress categories. Somehow on page load they are setting to the same values and I have to re-choose them again and hit save.
Just to clarify the two fields I am referencing are "fallback_category" and "autopopulated_single_category"
<?php add_filter( 'rwmb_meta_boxes', 'your_prefix_function_name' ); function your_prefix_function_name( $meta_boxes ) { $prefix = ''; $meta_boxes[] = [ 'title' => __( 'Featured Content', 'your-text-domain' ), 'id' => 'featured-content', 'description' => 'Displays featured content on the homepage.', 'icon' => 'star-filled', 'category' => 'theme', 'keywords' => ['featured'], 'supports' => [ 'align' => ['full'], ], 'render_template' => '/Users/****/Documents/projects/blacklab/wp-content/themes/blacklab/includes/functions/blocks/featured-content.php', 'type' => 'block', 'context' => 'side', 'fields' => [ [ 'name' => __( 'Content Population', 'your-text-domain' ), 'id' => $prefix . 'content_population', 'type' => 'select', 'options' => [ 'auto' => __( 'Auto-populate by category', 'your-text-domain' ), 'manual' => __( 'Manually populate', 'your-text-domain' ), ], 'std' => 'autopopulate', 'required' => true, ], [ 'name' => __( 'Fallback Category', 'your-text-domain' ), 'id' => $prefix . 'fallback_category', 'type' => 'taxonomy_advanced', 'label_description' => __( 'Select a fallback category for when there are not enough posts.', 'your-text-domain' ), 'taxonomy' => ['category'], 'field_type' => 'select_advanced', 'required' => true, ], [ 'name' => __( 'Category Source', 'your-text-domain' ), 'id' => $prefix . 'category_source', 'type' => 'select', 'options' => [ 'singlelocal' => __( 'Single Local Category', 'your-text-domain' ), 'multiplelocal' => __( 'Multiple Local Categories', 'your-text-domain' ), 'syndicated' => __( 'Syndicated Category', 'your-text-domain' ), ], 'std' => 'singlelocal', 'visible' => [ 'when' => [['content_population', '=', 'auto']], 'relation' => 'or', ], ], [ 'name' => __( 'Autopopulated Single Category', 'your-text-domain' ), 'id' => $prefix . 'autopopulated_single_category', 'type' => 'taxonomy_advanced', 'taxonomy' => ['category'], 'field_type' => 'select_advanced', 'visible' => [ 'when' => [['category_source', '=', 'singlelocal']], 'relation' => 'or', ], ], [ 'name' => __( 'Autopopulated Categories', 'your-text-domain' ), 'id' => $prefix . 'autopopulated_categories', 'type' => 'taxonomy_advanced', 'taxonomy' => ['category'], 'field_type' => 'select_advanced', 'multiple' => true, 'visible' => [ 'when' => [['category_source', '=', 'multiplelocal']], 'relation' => 'or', ], ], [ 'name' => __( 'Autopopulated Syndicated Category', 'your-text-domain' ), 'id' => $prefix . 'autopopulated_syndicated_category', 'type' => 'select', 'options' => get_syndicated_hub_cat_list(), 'visible' => [ 'when' => [['category_source', '=', 'syndicated']], 'relation' => 'or', ], ], [ 'name' => __( 'Featured Items', 'your-text-domain' ), 'id' => $prefix . 'featured_items', 'type' => 'group', 'collapsible' => true, 'default_state' => 'collapsed', 'group_title' => 'Featured Item {#}', 'clone' => true, 'sort_clone' => true, 'max_clone' => 10, 'fields' => [ [ 'name' => __( 'Featured Item Source', 'your-text-domain' ), 'id' => $prefix . 'featured_item_source', 'type' => 'select', 'options' => [ 'local' => __( 'Local Post', 'your-text-domain' ), 'syndicated' => __( 'Syndicated Post', 'your-text-domain' ), 'category' => __( 'Category', 'your-text-domain' ), ], 'std' => 'local', ], [ 'name' => __( 'Featured Item', 'your-text-domain' ), 'id' => $prefix . 'featured_item', 'type' => 'post', 'post_type' => ['post', 'page', 'contests', 'galleries', 'shows', 'videos'], 'field_type' => 'select_advanced', 'visible' => [ 'when' => [['featured_item_source', '=', 'local']], 'relation' => 'or', ], ], [ 'name' => __( 'Alternate Image', 'your-text-domain' ), 'id' => $prefix . 'alternate_image', 'type' => 'image_advanced', 'label_description' => __( 'Select a different image to appear instead of the featured image.', 'your-text-domain' ), 'max_status' => false, ], [ 'name' => __( 'Syndicated Post ID', 'your-text-domain' ), 'id' => $prefix . 'syndicated_post_id', 'type' => 'text', 'visible' => [ 'when' => [['featured_item_source', '=', 'syndicated']], 'relation' => 'or', ], ], [ 'name' => __( 'Featured Item Category', 'your-text-domain' ), 'id' => $prefix . 'featured_item_category', 'type' => 'taxonomy', 'taxonomy' => ['category'], 'field_type' => 'select_advanced', 'visible' => [ 'when' => [['featured_item_source', '=', 'category']], 'relation' => 'or', ], ], [ 'name' => __( 'Enable Item Schedule', 'your-text-domain' ), 'id' => $prefix . 'enable_item_schedule', 'type' => 'checkbox', ], [ 'name' => __( 'Featured Item Start', 'your-text-domain' ), 'id' => $prefix . 'featured_item_start', 'type' => 'datetime', 'visible' => [ 'when' => [['enable_item_schedule', '=', true]], 'relation' => 'or', ], ], [ 'name' => __( 'Featured Item End', 'your-text-domain' ), 'id' => $prefix . 'featured_item_end', 'type' => 'datetime', 'visible' => [ 'when' => [['enable_item_schedule', '=', true]], 'relation' => 'or', ], ], ], 'visible' => [ 'when' => [['content_population', '=', 'manual']], 'relation' => 'or', ], ], [ 'type' => 'heading', 'name' => __( 'Static Items', 'your-text-domain' ), ], [ 'name' => __( 'Static Post 1', 'your-text-domain' ), 'id' => $prefix . 'static_post_1', 'type' => 'post', 'post_type' => [ 'post', 'page', 'contests', 'galleries', 'shows', 'tribe_events', 'videos', ], 'field_type' => 'select_advanced', ], [ 'name' => __( 'Static Post 2', 'your-text-domain' ), 'id' => $prefix . 'static_post_2', 'type' => 'post', 'post_type' => [ 'post', 'page', 'contests', 'galleries', 'shows', 'tribe_events', 'videos', ], 'field_type' => 'select_advanced', ], ], ]; return $meta_boxes; }
November 5, 2021 at 7:26 PM #31753Long Nguyen
ModeratorHi,
I do not see any issue with your code on my end. Screen record https://share.getcloudapp.com/7KuAE2Yy
The code which I tested on the local site
add_filter( 'rwmb_meta_boxes', 'your_prefix_function_name' ); function your_prefix_function_name( $meta_boxes ) { $prefix = ''; $meta_boxes[] = [ 'title' => __( 'Featured Content', 'your-text-domain' ), 'id' => 'featured-content', 'description' => 'Displays featured content on the homepage.', 'icon' => 'star-filled', 'category' => 'theme', 'keywords' => ['featured'], 'supports' => [ 'align' => ['full'], ], 'render_callback' => 'my_callback', 'type' => 'block', 'context' => 'side', 'fields' => [ [ 'name' => __( 'Content Population', 'your-text-domain' ), 'id' => $prefix . 'content_population', 'type' => 'select', 'options' => [ 'auto' => __( 'Auto-populate by category', 'your-text-domain' ), 'manual' => __( 'Manually populate', 'your-text-domain' ), ], 'std' => 'autopopulate', 'required' => true, ], [ 'name' => __( 'Fallback Category', 'your-text-domain' ), 'id' => $prefix . 'fallback_category', 'type' => 'taxonomy_advanced', 'label_description' => __( 'Select a fallback category for when there are not enough posts.', 'your-text-domain' ), 'taxonomy' => ['category'], 'field_type' => 'select_advanced', 'required' => true, ], [ 'name' => __( 'Category Source', 'your-text-domain' ), 'id' => $prefix . 'category_source', 'type' => 'select', 'options' => [ 'singlelocal' => __( 'Single Local Category', 'your-text-domain' ), 'multiplelocal' => __( 'Multiple Local Categories', 'your-text-domain' ), 'syndicated' => __( 'Syndicated Category', 'your-text-domain' ), ], 'std' => 'singlelocal', 'visible' => [ 'when' => [['content_population', '=', 'auto']], 'relation' => 'or', ], ], [ 'name' => __( 'Autopopulated Single Category', 'your-text-domain' ), 'id' => $prefix . 'autopopulated_single_category', 'type' => 'taxonomy_advanced', 'taxonomy' => ['category'], 'field_type' => 'select_advanced', 'visible' => [ 'when' => [['category_source', '=', 'singlelocal']], 'relation' => 'or', ], ], [ 'name' => __( 'Autopopulated Categories', 'your-text-domain' ), 'id' => $prefix . 'autopopulated_categories', 'type' => 'taxonomy_advanced', 'taxonomy' => ['category'], 'field_type' => 'select_advanced', 'multiple' => true, 'visible' => [ 'when' => [['category_source', '=', 'multiplelocal']], 'relation' => 'or', ], ], ], ]; return $meta_boxes; } function my_callback( $attributes, $is_preview = false, $post_id = null ) { // Fields data. if ( empty( $attributes['data'] ) ) { return; } mb_the_block_field( 'fallback_category' ); echo '<br>'; mb_the_block_field( 'autopopulated_single_category' ); }
December 14, 2021 at 12:42 AM #32578alpha.media
ParticipantI am still running into this issue and have an update. It appears the field data is saving correctly to the database but when I go back to the "edit page" the select fields show empty and not the saved value. I hope you can help further troubleshoot this. I have added a few more taxonomy advanced with select advanced fields to the options and the same issue is appearing.
The strange thing is it happens intermittently at times and then for some reason the field will show. This field is within a group type option.
I have attached a screen recording so you can see the issue as it happens.
https://drive.google.com/file/d/1MajZJSaNYl-yC43twpfWKdGcrlnaO-go/view?usp=sharing
December 14, 2021 at 10:56 AM #32591Long Nguyen
ModeratorHi,
The field
Featured Item Category
, in your code above, is the fieldtaxonomy
. Can you please change it totaxonomy_advanced
and re-check this issue?December 16, 2021 at 1:48 PM #32677alpha.media
ParticipantThanks. That seems to be the issue.
-
AuthorPosts
- You must be logged in to reply to this topic.