Skip to content

Conversation

seripap
Copy link

@seripap seripap commented Nov 4, 2021

In my setup, I have a clone field that is represented as flexible content. Within this flexible content, 3 different high level fields exist: clone (flexible content), or post objects.

When nested Flexible Content > Flexible Content > Content (WYSIWYG in this case), ACF triggers apply_filters from wysiwyg field. The input $value is an array in my scenario, which causes the admin panel to throw an error. This just adds a string check before applying the filter.

@mattgrshaw
Copy link
Member

@seripap Thanks for the PR! To make sure we're on the same page, would you be able to share an export of a field group where you're seeing this issue?

@seripap
Copy link
Author

seripap commented Nov 4, 2021

Sure here's a full export which may be easier to reference

group_6183fcd1dabcb is using group_6183f883d77da as a clone.

group_6183f883d77da is the reference to 3 flexible content types. Within the first one is a layout called 'Components', which is a clone of group_6168389fcfc91.

Once a component is added that has a WYSIWYG field on it, the function referenced in the PR shows $value as [0] => component instead of a string

<?php
if( function_exists('acf_add_local_field_group') ):

acf_add_local_field_group(array(
	'key' => 'group_6183fcd1dabcb',
	'title' => 'Homepage Template',
	'fields' => array(
		array(
			'key' => 'field_6183fcd656f95',
			'label' => 'Content',
			'name' => 'pageContent',
			'type' => 'clone',
			'instructions' => '',
			'required' => 0,
			'conditional_logic' => 0,
			'wrapper' => array(
				'width' => '',
				'class' => '',
				'id' => '',
			),
			'show_in_graphql' => 1,
			'clone' => array(
				0 => 'field_6183f888691b9',
			),
			'display' => 'seamless',
			'layout' => 'block',
			'prefix_label' => 0,
			'prefix_name' => 0,
			'acfe_field_group_condition' => 0,
		),
	),
	'location' => array(
		array(
			array(
				'param' => 'post_type',
				'operator' => '==',
				'value' => 'page',
			),
		),
		array(
			array(
				'param' => 'page_template',
				'operator' => '==',
				'value' => 'index.php',
			),
		),
	),
	'menu_order' => 0,
	'position' => 'normal',
	'style' => 'default',
	'label_placement' => 'left',
	'instruction_placement' => 'label',
	'hide_on_screen' => '',
	'active' => true,
	'description' => '',
	'acfe_autosync' => array(
		0 => 'json',
	),
	'acfe_form' => 0,
	'acfe_display_title' => '',
	'acfe_meta' => '',
	'acfe_note' => '',
	'show_in_graphql' => 1,
	'graphql_field_name' => 'contents',
	'map_graphql_types_from_location_rules' => 0,
	'graphql_types' => '',
));

acf_add_local_field_group(array(
	'key' => 'group_6183f883d77da',
	'title' => 'Page Content',
	'fields' => array(
		array(
			'key' => 'field_6183f888691b9',
			'label' => 'Content',
			'name' => 'content',
			'type' => 'flexible_content',
			'instructions' => '',
			'required' => 0,
			'conditional_logic' => 0,
			'wrapper' => array(
				'width' => '',
				'class' => '',
				'id' => '',
			),
			'show_in_graphql' => 1,
			'acfe_flexible_advanced' => 0,
			'layouts' => array(
				'layout_6183f8950d198' => array(
					'key' => 'layout_6183f8950d198',
					'name' => 'components',
					'label' => 'Components',
					'display' => 'block',
					'sub_fields' => array(
						array(
							'key' => 'field_6183f89a691ba',
							'label' => 'Component',
							'name' => 'component',
							'type' => 'clone',
							'instructions' => '',
							'required' => 0,
							'conditional_logic' => 0,
							'wrapper' => array(
								'width' => '',
								'class' => '',
								'id' => '',
							),
							'show_in_graphql' => 1,
							'clone' => array(
								0 => 'field_616838a5ba9e2',
							),
							'display' => 'seamless',
							'layout' => 'block',
							'prefix_label' => 0,
							'prefix_name' => 0,
							'acfe_field_group_condition' => 0,
						),
					),
					'min' => '',
					'max' => '',
					'acfe_flexible_render_template' => false,
					'acfe_flexible_render_style' => false,
					'acfe_flexible_render_script' => false,
					'acfe_flexible_thumbnail' => false,
					'acfe_flexible_settings' => false,
					'acfe_flexible_settings_size' => 'medium',
					'acfe_layout_locations' => array(
					),
					'acfe_flexible_modal_edit_size' => false,
					'acfe_flexible_category' => false,
					'acfe_layout_col' => 'auto',
					'acfe_layout_allowed_col' => false,
				),
				'layout_6183f8ba691bb' => array(
					'key' => 'layout_6183f8ba691bb',
					'name' => 'blocks',
					'label' => 'Blocks',
					'display' => 'block',
					'sub_fields' => array(
						array(
							'key' => 'field_6183f8c2691bc',
							'label' => 'Block',
							'name' => 'block',
							'type' => 'post_object',
							'instructions' => '',
							'required' => 0,
							'conditional_logic' => 0,
							'wrapper' => array(
								'width' => '',
								'class' => '',
								'id' => '',
							),
							'show_in_graphql' => 1,
							'post_type' => array(
								0 => 'block',
							),
							'taxonomy' => '',
							'allow_null' => 0,
							'multiple' => 0,
							'max' => '',
							'return_format' => 'object',
							'acfe_add_post' => 0,
							'acfe_edit_post' => 0,
							'save_custom' => 0,
							'save_post_status' => 'publish',
							'acfe_bidirectional' => array(
								'acfe_bidirectional_enabled' => '0',
							),
							'acfe_field_group_condition' => 0,
							'ui' => 1,
						),
					),
					'min' => '',
					'max' => '',
					'acfe_flexible_render_template' => false,
					'acfe_flexible_render_style' => false,
					'acfe_flexible_render_script' => false,
					'acfe_flexible_thumbnail' => false,
					'acfe_flexible_settings' => false,
					'acfe_flexible_settings_size' => 'medium',
					'acfe_layout_locations' => array(
					),
					'acfe_flexible_modal_edit_size' => false,
					'acfe_flexible_category' => false,
					'acfe_layout_col' => 'auto',
					'acfe_layout_allowed_col' => false,
				),
				'layout_6183f8dd691bd' => array(
					'key' => 'layout_6183f8dd691bd',
					'name' => 'scenarios',
					'label' => 'Scenarios',
					'display' => 'block',
					'sub_fields' => array(
						array(
							'key' => 'field_6183f8e1691be',
							'label' => 'Scenario',
							'name' => 'scenario',
							'type' => 'post_object',
							'instructions' => '',
							'required' => 0,
							'conditional_logic' => 0,
							'wrapper' => array(
								'width' => '',
								'class' => '',
								'id' => '',
							),
							'show_in_graphql' => 1,
							'post_type' => array(
								0 => 'scenario',
							),
							'taxonomy' => '',
							'allow_null' => 0,
							'multiple' => 0,
							'max' => '',
							'return_format' => 'object',
							'acfe_add_post' => 0,
							'acfe_edit_post' => 0,
							'save_custom' => 0,
							'save_post_status' => 'publish',
							'acfe_bidirectional' => array(
								'acfe_bidirectional_enabled' => '0',
							),
							'acfe_field_group_condition' => 0,
							'ui' => 1,
						),
					),
					'min' => '',
					'max' => '',
					'acfe_flexible_render_template' => false,
					'acfe_flexible_render_style' => false,
					'acfe_flexible_render_script' => false,
					'acfe_flexible_thumbnail' => false,
					'acfe_flexible_settings' => false,
					'acfe_flexible_settings_size' => 'medium',
					'acfe_layout_locations' => array(
					),
					'acfe_flexible_modal_edit_size' => false,
					'acfe_flexible_category' => false,
					'acfe_layout_col' => 'auto',
					'acfe_layout_allowed_col' => false,
				),
			),
			'button_label' => 'Add Content',
			'min' => '',
			'max' => '',
			'acfe_field_group_condition' => 0,
			'acfe_flexible_stylised_button' => false,
			'acfe_flexible_hide_empty_message' => false,
			'acfe_flexible_empty_message' => '',
			'acfe_flexible_layouts_templates' => false,
			'acfe_flexible_layouts_previews' => false,
			'acfe_flexible_layouts_placeholder' => false,
			'acfe_flexible_layouts_thumbnails' => false,
			'acfe_flexible_layouts_settings' => false,
			'acfe_flexible_layouts_locations' => false,
			'acfe_flexible_async' => array(
			),
			'acfe_flexible_add_actions' => array(
			),
			'acfe_flexible_remove_button' => array(
			),
			'acfe_flexible_layouts_state' => false,
			'acfe_flexible_modal_edit' => array(
				'acfe_flexible_modal_edit_enabled' => false,
				'acfe_flexible_modal_edit_size' => 'large',
			),
			'acfe_flexible_modal' => array(
				'acfe_flexible_modal_enabled' => false,
				'acfe_flexible_modal_title' => false,
				'acfe_flexible_modal_size' => 'full',
				'acfe_flexible_modal_col' => '4',
				'acfe_flexible_modal_categories' => false,
			),
			'acfe_flexible_grid' => array(
				'acfe_flexible_grid_enabled' => false,
				'acfe_flexible_grid_align' => 'center',
				'acfe_flexible_grid_valign' => 'stretch',
				'acfe_flexible_grid_wrap' => false,
			),
			'acfe_flexible_grid_container' => false,
		),
	),
	'location' => array(
		array(
			array(
				'param' => 'post_type',
				'operator' => '==',
				'value' => 'page',
			),
		),
	),
	'menu_order' => 0,
	'position' => 'normal',
	'style' => 'default',
	'label_placement' => 'top',
	'instruction_placement' => 'label',
	'hide_on_screen' => '',
	'active' => false,
	'description' => '',
	'acfe_autosync' => array(
		0 => 'json',
	),
	'acfe_form' => 0,
	'acfe_display_title' => '',
	'acfe_meta' => '',
	'acfe_note' => '',
	'show_in_graphql' => 1,
	'graphql_field_name' => 'homepage',
	'map_graphql_types_from_location_rules' => 0,
	'graphql_types' => '',
));

acf_add_local_field_group(array(
	'key' => 'group_616835be9ab8d',
	'title' => 'Page Metadata',
	'fields' => array(
		array(
			'key' => 'field_616835c51a987',
			'label' => 'Title',
			'name' => 'title',
			'type' => 'text',
			'instructions' => '',
			'required' => 1,
			'conditional_logic' => 0,
			'wrapper' => array(
				'width' => '',
				'class' => '',
				'id' => '',
			),
			'show_in_graphql' => 1,
			'default_value' => '',
			'placeholder' => '',
			'prepend' => '',
			'append' => '',
			'maxlength' => '',
		),
		array(
			'key' => 'field_616835cd1a988',
			'label' => 'Description',
			'name' => 'description',
			'type' => 'textarea',
			'instructions' => 'SEO Description.',
			'required' => 1,
			'conditional_logic' => 0,
			'wrapper' => array(
				'width' => '',
				'class' => '',
				'id' => '',
			),
			'show_in_graphql' => 1,
			'default_value' => '',
			'placeholder' => '',
			'maxlength' => 155,
			'rows' => '',
			'new_lines' => '',
		),
		array(
			'key' => 'field_616835e41a989',
			'label' => 'Image',
			'name' => 'image',
			'type' => 'image',
			'instructions' => 'Optional image to render for SEO.',
			'required' => 0,
			'conditional_logic' => 0,
			'wrapper' => array(
				'width' => '',
				'class' => '',
				'id' => '',
			),
			'show_in_graphql' => 1,
			'return_format' => 'url',
			'preview_size' => 'medium',
			'library' => 'all',
			'min_width' => '',
			'min_height' => '',
			'min_size' => '',
			'max_width' => '',
			'max_height' => '',
			'max_size' => '',
			'mime_types' => '',
		),
	),
	'location' => array(
		array(
			array(
				'param' => 'post_type',
				'operator' => '==',
				'value' => 'page',
			),
		),
	),
	'menu_order' => 0,
	'position' => 'normal',
	'style' => 'default',
	'label_placement' => 'top',
	'instruction_placement' => 'label',
	'hide_on_screen' => array(
		0 => 'the_content',
		1 => 'excerpt',
	),
	'active' => true,
	'description' => 'Basic metadata for a page.',
	'acfe_autosync' => array(
		0 => 'json',
	),
	'acfe_form' => 1,
	'acfe_display_title' => 'Page Metadata',
	'acfe_permissions' => '',
	'acfe_meta' => '',
	'acfe_note' => '',
	'show_in_graphql' => 1,
	'graphql_field_name' => 'pageMetadata',
	'map_graphql_types_from_location_rules' => 0,
	'graphql_types' => '',
));

acf_add_local_field_group(array(
	'key' => 'group_6168389fcfc91',
	'title' => 'Global Components',
	'fields' => array(
		array(
			'key' => 'field_616838a5ba9e2',
			'label' => 'Component',
			'name' => 'components',
			'type' => 'flexible_content',
			'instructions' => '',
			'required' => 0,
			'conditional_logic' => 0,
			'wrapper' => array(
				'width' => '',
				'class' => '',
				'id' => '',
			),
			'hide_field' => '',
			'hide_label' => '',
			'hide_instructions' => '',
			'hide_required' => '',
			'instruction_placement' => '',
			'acfe_permissions' => '',
			'show_in_graphql' => 1,
			'acfe_flexible_advanced' => 1,
			'acfe_flexible_stylised_button' => 1,
			'acfe_flexible_layouts_templates' => 0,
			'acfe_flexible_layouts_placeholder' => 0,
			'acfe_flexible_layouts_thumbnails' => 0,
			'acfe_flexible_layouts_settings' => 0,
			'acfe_flexible_layouts_locations' => 0,
			'acfe_flexible_async' => array(
			),
			'acfe_flexible_add_actions' => array(
			),
			'acfe_flexible_remove_button' => array(
			),
			'acfe_flexible_layouts_state' => 'user',
			'acfe_flexible_modal_edit' => array(
				'acfe_flexible_modal_edit_enabled' => '0',
				'acfe_flexible_modal_edit_size' => 'large',
			),
			'acfe_flexible_modal' => array(
				'acfe_flexible_modal_enabled' => '1',
				'acfe_flexible_modal_title' => 'Components',
				'acfe_flexible_modal_size' => 'full',
				'acfe_flexible_modal_col' => '4',
				'acfe_flexible_modal_categories' => '1',
			),
			'acfe_flexible_grid' => array(
				'acfe_flexible_grid_enabled' => '0',
				'acfe_flexible_grid_align' => 'center',
				'acfe_flexible_grid_valign' => 'stretch',
				'acfe_flexible_grid_wrap' => false,
			),
			'layouts' => array(
				'layout_61698847abf16' => array(
					'key' => 'layout_61698847abf16',
					'name' => 'content_block',
					'label' => 'Content Block',
					'display' => 'block',
					'sub_fields' => array(
						array(
							'key' => 'field_6169886fabf19',
							'label' => 'Content',
							'name' => 'content',
							'type' => 'wysiwyg',
							'instructions' => '',
							'required' => 0,
							'conditional_logic' => 0,
							'wrapper' => array(
								'width' => '',
								'class' => '',
								'id' => '',
							),
							'show_in_graphql' => 1,
							'default_value' => '',
							'tabs' => 'all',
							'toolbar' => 'full',
							'media_upload' => 1,
							'delay' => 0,
							'acfe_wysiwyg_height' => 300,
							'acfe_wysiwyg_max_height' => '',
							'acfe_wysiwyg_valid_elements' => '',
							'acfe_wysiwyg_custom_style' => '',
							'acfe_wysiwyg_disable_wp_style' => 0,
							'acfe_wysiwyg_autoresize' => 0,
							'acfe_wysiwyg_disable_resize' => 0,
							'acfe_wysiwyg_remove_path' => 0,
							'acfe_wysiwyg_menubar' => 0,
							'acfe_wysiwyg_transparent' => 0,
							'acfe_wysiwyg_merge_toolbar' => 0,
							'acfe_wysiwyg_custom_toolbar' => 0,
							'acfe_field_group_condition' => 0,
						),
					),
					'min' => '',
					'max' => '',
					'acfe_flexible_category' => array(
						0 => 'Generic',
					),
					'acfe_flexible_render_template' => false,
					'acfe_flexible_render_style' => false,
					'acfe_flexible_render_script' => false,
					'acfe_flexible_thumbnail' => false,
					'acfe_flexible_settings' => false,
					'acfe_flexible_settings_size' => 'medium',
					'acfe_layout_locations' => array(
					),
					'acfe_flexible_modal_edit_size' => false,
					'acfe_layout_col' => 'auto',
					'acfe_layout_allowed_col' => false,
				),
				'layout_617c55d30aab4' => array(
					'key' => 'layout_617c55d30aab4',
					'name' => 'hero',
					'label' => 'Hero',
					'display' => 'block',
					'sub_fields' => array(
						array(
							'key' => 'field_617c55eb0aab5',
							'label' => 'Title',
							'name' => 'title',
							'type' => 'text',
							'instructions' => '',
							'required' => 0,
							'conditional_logic' => 0,
							'wrapper' => array(
								'width' => '',
								'class' => '',
								'id' => '',
							),
							'hide_field' => '',
							'hide_label' => '',
							'hide_instructions' => '',
							'hide_required' => '',
							'instruction_placement' => '',
							'acfe_permissions' => '',
							'show_in_graphql' => 1,
							'default_value' => '',
							'placeholder' => '',
							'prepend' => '',
							'append' => '',
							'maxlength' => '',
							'acfe_settings' => '',
							'acfe_validate' => '',
							'acfe_field_group_condition' => 0,
						),
						array(
							'key' => 'field_617c55f60aab6',
							'label' => 'Description',
							'name' => 'description',
							'type' => 'textarea',
							'instructions' => '',
							'required' => 0,
							'conditional_logic' => 0,
							'wrapper' => array(
								'width' => '',
								'class' => '',
								'id' => '',
							),
							'hide_field' => '',
							'hide_label' => '',
							'hide_instructions' => '',
							'hide_required' => '',
							'instruction_placement' => '',
							'acfe_permissions' => '',
							'show_in_graphql' => 1,
							'default_value' => '',
							'placeholder' => '',
							'maxlength' => '',
							'rows' => '',
							'new_lines' => '',
							'acfe_textarea_code' => 0,
							'acfe_settings' => '',
							'acfe_validate' => '',
							'acfe_field_group_condition' => 0,
						),
						array(
							'key' => 'field_617c56210aab7',
							'label' => 'Buttons',
							'name' => 'buttons',
							'type' => 'repeater',
							'instructions' => '',
							'required' => 0,
							'conditional_logic' => 0,
							'wrapper' => array(
								'width' => '',
								'class' => '',
								'id' => '',
							),
							'hide_field' => '',
							'hide_label' => '',
							'hide_instructions' => '',
							'hide_required' => '',
							'instruction_placement' => '',
							'acfe_permissions' => '',
							'show_in_graphql' => 1,
							'acfe_repeater_stylised_button' => 0,
							'collapsed' => '',
							'min' => 0,
							'max' => 0,
							'layout' => 'table',
							'button_label' => 'Add Button',
							'acfe_settings' => '',
							'acfe_field_group_condition' => 0,
							'sub_fields' => array(
								array(
									'key' => 'field_617c56a80aab8',
									'label' => 'Label',
									'name' => 'label',
									'type' => 'text',
									'instructions' => 'The label for the button',
									'required' => 0,
									'conditional_logic' => 0,
									'wrapper' => array(
										'width' => '',
										'class' => '',
										'id' => '',
									),
									'show_in_graphql' => 1,
									'default_value' => '',
									'placeholder' => '',
									'prepend' => '',
									'append' => '',
									'maxlength' => '',
									'acfe_settings' => '',
									'acfe_validate' => '',
									'acfe_field_group_condition' => 0,
								),
								array(
									'key' => 'field_617c56f90aab9',
									'label' => 'Color',
									'name' => 'color',
									'type' => 'select',
									'instructions' => '',
									'required' => 0,
									'conditional_logic' => 0,
									'wrapper' => array(
										'width' => '',
										'class' => '',
										'id' => '',
									),
									'show_in_graphql' => 1,
									'choices' => array(
										'primary' => 'Primary',
										'secondary' => 'Secondary',
									),
									'default_value' => false,
									'allow_null' => 0,
									'multiple' => 0,
									'max' => '',
									'ui' => 0,
									'return_format' => 'value',
									'prepend' => '',
									'append' => '',
									'acfe_settings' => '',
									'acfe_validate' => '',
									'acfe_field_group_condition' => 0,
									'ajax' => 0,
									'placeholder' => '',
								),
								array(
									'key' => 'field_617c57700aaba',
									'label' => 'Link',
									'name' => 'link',
									'type' => 'url',
									'instructions' => '',
									'required' => 0,
									'conditional_logic' => 0,
									'wrapper' => array(
										'width' => '',
										'class' => '',
										'id' => '',
									),
									'show_in_graphql' => 1,
									'default_value' => '',
									'placeholder' => '',
									'acfe_settings' => '',
									'acfe_validate' => '',
									'acfe_field_group_condition' => 0,
								),
								array(
									'key' => 'field_617c58770aabb',
									'label' => 'Open in New Page?',
									'name' => 'new_page',
									'type' => 'true_false',
									'instructions' => '',
									'required' => 0,
									'conditional_logic' => 0,
									'wrapper' => array(
										'width' => '',
										'class' => '',
										'id' => '',
									),
									'show_in_graphql' => 1,
									'message' => '',
									'default_value' => 0,
									'ui' => 0,
									'acfe_settings' => '',
									'acfe_validate' => '',
									'acfe_field_group_condition' => 0,
									'ui_on_text' => '',
									'ui_off_text' => '',
								),
							),
						),
					),
					'min' => '',
					'max' => '',
					'acfe_flexible_category' => array(
						0 => 'Generic',
					),
					'acfe_flexible_render_template' => false,
					'acfe_flexible_render_style' => false,
					'acfe_flexible_render_script' => false,
					'acfe_flexible_thumbnail' => false,
					'acfe_flexible_settings' => false,
					'acfe_flexible_settings_size' => 'medium',
					'acfe_layout_locations' => array(
					),
					'acfe_flexible_modal_edit_size' => false,
					'acfe_layout_col' => 'auto',
					'acfe_layout_allowed_col' => false,
				),
			),
			'button_label' => 'Add Component',
			'min' => '',
			'max' => '',
			'acfe_settings' => '',
			'acfe_field_group_condition' => 0,
			'acfe_flexible_hide_empty_message' => false,
			'acfe_flexible_empty_message' => '',
			'acfe_flexible_layouts_previews' => false,
			'acfe_flexible_grid_container' => false,
		),
	),
	'location' => array(
		array(
			array(
				'param' => 'post_type',
				'operator' => '==',
				'value' => 'page',
			),
		),
	),
	'menu_order' => 2,
	'position' => 'normal',
	'style' => 'default',
	'label_placement' => 'top',
	'instruction_placement' => 'label',
	'hide_on_screen' => '',
	'active' => false,
	'description' => 'Reusable components- Use as a `clone` within ACF fields.',
	'acfe_autosync' => array(
		0 => 'json',
	),
	'acfe_form' => 1,
	'acfe_display_title' => 'Components',
	'acfe_permissions' => '',
	'acfe_meta' => '',
	'acfe_note' => '',
	'show_in_graphql' => 1,
	'graphql_field_name' => 'components',
	'map_graphql_types_from_location_rules' => 0,
	'graphql_types' => '',
));

endif;		

@mattgrshaw
Copy link
Member

Thanks! Unfortunately I wasn't able to replicate the problem with that field group, but I don't see the harm in adding some type checking here, especially since we already do this with similar fields.

I've raised an issue on our internal repo and will look at getting this into a future release.

Thanks again for flagging and raising a PR.

@mattgrshaw
Copy link
Member

Hi @seripap, just a heads up that we've released 5.11 today, but unfortunately weren't able to get this into that release (we were late in the release cycle when you submitted this PR).

I've triaged that to our 5.11.1 bugfix release so it will be included then, but if you update to 5.11 in the meantime, you'll need to apply this fix again manually.

@seripap
Copy link
Author

seripap commented Nov 10, 2021

No worries, thanks for the update

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants