diff --git a/src/classes/theme-helper/class-tainacan-theme-helper.php b/src/classes/theme-helper/class-tainacan-theme-helper.php index 807bdd5a9..ec7ff9cc3 100644 --- a/src/classes/theme-helper/class-tainacan-theme-helper.php +++ b/src/classes/theme-helper/class-tainacan-theme-helper.php @@ -1566,8 +1566,15 @@ class Theme_Helper { if ( !$collection_id ) return ''; - $args['p'] = $args['metadata']; - //$args['posts_per_page'] = 1; + if ( isset($args['metadata']) ) + $args['p'] = $args['metadata']; + + if ( isset($args['metadata__in']) ) + $args['post__in'] = $args['metadata__in']; + + if ( isset($args['metadata__not_in']) ) + $args['post__not_in'] = $args['metadata__not_in']; + $collection = \Tainacan\Repositories\Collections::get_instance()->fetch($collection_id); $metadata = \Tainacan\Repositories\Metadata::get_instance()->fetch_by_collection($collection, $args); diff --git a/src/views/gutenberg-blocks/blocks/item-metadata-section/edit.js b/src/views/gutenberg-blocks/blocks/item-metadata-section/edit.js index 3a7d547d9..0d23945ad 100644 --- a/src/views/gutenberg-blocks/blocks/item-metadata-section/edit.js +++ b/src/views/gutenberg-blocks/blocks/item-metadata-section/edit.js @@ -113,7 +113,7 @@ export default function ({ attributes, setAttributes, className, isSelected }) { 'tainacan/item-metadata', { sectionId: String(sectionId), - itemId: Number(itemId), + itemId: isDynamic ? Number(itemId) : 0, collectionId: Number(collectionId), metadata: sectionMetadata, dataSource: 'parent', diff --git a/src/views/gutenberg-blocks/blocks/item-metadata/save.php b/src/views/gutenberg-blocks/blocks/item-metadata/save.php index 1b8564ba0..f241ffbed 100644 --- a/src/views/gutenberg-blocks/blocks/item-metadata/save.php +++ b/src/views/gutenberg-blocks/blocks/item-metadata/save.php @@ -18,9 +18,9 @@ function tainacan_blocks_render_item_metadata( $block_attributes, $content, $blo // Builds args from backend query $args = [ - 'metadata_in' => array_map(function($metadatum) { return $metadatum['id']; }, $metadata) + 'metadata__in' => array_map(function($metadatum) { return $metadatum['id']; }, $metadata) ]; - + if ( $template_mode && $collection_id ) { // Checks if we are in the edit page or in the published $current_post = get_post();