Is there a way to get MFB to change how it is displaying an ACF date field on a per-block basis?
We need to display the same ACF date field differently depending on if it’s the event CPT archive page or the CPT single post. Using meta_field_block_get_acf_field
will, I guess, change how the field is displayed for all instances?
I sort of thought that I can change this on a per-block basis in MFB, but haven’t found this: ?I’m going to do a setting allowing to choose the output format of the block soon?… maybe I’m looking in the wrong place?
Thanks!
Notice: Function _load_textdomain_just_in_time was called <strong>incorrectly</strong>. Translation loading for the <code>display-a-meta-field-as-block</code> domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the <code>init</code> action or later. Please see <a href=”https://developer.www.ads-software.com/advanced-administration/debug/debug-wordpress/”>Debugging in WordPress</a> for more information. (This message was added in version 6.7.0.) in C:\wamp64\www\olivier\wp-includes\functions.php on line 6114
]]>Hi Phi (@mr2p),
Does MFB work with the Checkout Field Editor for WooCommerce plugin? I want to display some additional fields at checkout (some of them with display rules) and I’m trying this Checkout Field Editor plugin but the fields are not showign and apparently the plugin is not compatible with Woocommerce blocks (there is an explanation here) but perhaps I can display them with your plugin?
]]>How to show Image from ACF link field on elementor
please guide
I’m trying to create a slider of featured images from an ACF Custom post type sorted using MFB to check if the post is marked as featured. Do you have any suggestions on what block slider might be compatible with it?
]]>Hello,
I am a user of Metafieldblock Pro, and I can’t get the display of an ACF repeater field to work.
When I select my repeater field, the block does not transform into a layout block as shown in the explanation video. It remains a text block, and I cannot access the fields within the repeater.
When I preview the page, the block displays: “This type of data is not supported! Please contact the author for assistance.”
I also noticed that the display in the API is enabled for the field group, yet the field names do not appear when I select the Metafieldblock from my page template.
Can you help me?
Thank you in advance.
]]>Hi. I’m trying to add the shortcode generated by the plugin Gallery Photoblocks into a template. I am using ACF to create a custom post type with custom fields but I’m not sure what type of field I should select for the Photoblock shortcode. I have tried as a Text field and adding this custom field to the template using Meta Field Block but it’s showing the shortcode [photoblocks id=4] rather than the gallery. Please help???
]]>Hi there,
Thanks for the cool plugin. Love it!
Is there a way to use meta keys from the Yoast plugin.
Keys: https://shellcreeper.com/yoast-seo-meta-keys-table/
Let me know! Thanks!
]]>I am using a query loop over post types that define downloadable guides. I want a download guide button on each guide shown in the loop to link to a specific URL that I have defined in an ACF field.
I can get the link using MFB but I don’t know how to use it in a button for linking to the guide download location specific to each post.
I am able to create Gutenberg Blocks using React I’d like to learn how to grab the info from MFB into one.
Hi,
First thank you for this amazing plugin, it is a life saver when switching to full block theme on a dynamic site ??
I have an issue with enclosing shortcodes, which don’t seem to be rendered correctly with MFB, but I might be missing something.
I reduced my test to this post content:
WP shortcode block [testmfb]
WP paragraph block "Test WP shortcode"
WP shortcode block [/testmfb]
MFB dynamic block [testmfb]
WP paragraph block "Test MFB shortcode"
MFB dynamic block [/testmfb]
With the following testmfb shortcode definition:
add_shortcode( 'testmfb', function( $atts = [], $content = null, $tag = '' ) {
return '<div style="background-color: red">' . $content . '</div>';
} );
Result is this:
So it seems that MFB doesn’t render the enclosing shortcodes.
When inspecting the code, I can see the two MFB divs rendered with no value, so it looks like the enclosing shortcode is considered as two different shortcodes: [testmfb] and [/tesmfb].
Note: When I use only one MFB block with enclosing shortcodes in value parameter, it is working:
MFB dynamic block [testmfb]Test[/testmfb]
Hope it makes sense,
Yan
Hi
I have installed this plugin, which seemed perfect to me, only to display a small text line in a custom way inside the loop (just like a subtitle). BUT, when an author (ie not administrator) writes a post, the custom meta field won’t show.
I had to instal ACF to display the “meta field” panel. My development skills are limited (especially with Gutenberg), but maybe someone has a workaround ?
It’s always disappointing to install an plugin that contains 20MB of code just to display a meta field…
I added some MFB blocks within a Woo Product Collection block (Query Loop). I can see the values in the Editor, but not on front, and cannot find why. Any hint ? I’m running the free version.
Edit : it’s a woo category archive page
]]>Hi,
There is a strange behaviour for all MF Block I use in my page templates.
They all have by default this inline style :
.wp-block-mfb-meta-field-block {
text-transform: uppercase;
}
Of course I managed to override this Style adding a text-transform:none in my style.css file , but it’s very strange. And the Uppercase is still applying in the backend ( when I open a template in the WP Editor ).
Don’t know how it started. I had applied an Uppercase on 1 MF Block inline style. But I don’t understand how it became a default style for every new MF Block I add to my template.
…
Thanks for help
Hi Phi,
Thanks for this really great plugin, I am testing it locally since yesterday and I think there is CSS glitch with the Prefix and Suffix in the Block.
It’s adding some margin on top of the Prefix or Suffix, and I really can’t see where it’s coming from.
Please note, I am not great with php and I still don’t have a clue how to insert code in templates, so my setup is very simple, as follow — not doing anything fancy:
I add a couple of Meta Fields in the WordPress post, nothing fancy, just at the bottom of the page, enabled from the Preferences > Panels > Custom Fields…
Than in the Gutenberg Query loop / Archives, I add a couple of Blocks and in Meta field settings > Field Type > I pick “Dynamic field”, then in Field Name I add the field name created in the post. So I use two Blocks, presented inline and Display Output is Inline block.
For now I could always add the css as shown below, but I thought you might like to now.
Also, very important, this is happening a bit randomly; for example, it might add the top margin in the first block’s Prefix or Suffix, and then the next block is fine… then if you play with the settings and resave and the second Block with have the margin added and the first one back to normal… so it’s a bit erratic.
Otherwise, I am so glad you created this plugin, I searched WordPress for the past two weeks for something like that, and yesterday only I persevered and decided to go through tons of pages through the search, it’s a shame because it deserves to be at the top of the search!
.wp-block-mfb-meta-field-block.is-display-inline-block .prefix+.value, .wp-block-mfb-meta-field-block.is-display-inline-block .value+.suffix {
margin-left: 0.5em;
margin-top: 0; /*0 or auto fixes it*/
}
IMPORTANT UPDATE:
Actually, the extra top margin is added to the css class “Value” and not prefix or suffix. But the glitch appears WHEN you add a prefix or suffix.
Hello,
Thanks for your fantastic plugin.
I would like to place an image ACF field with automatically the post permalink on it.
I read the documentation, asked an AI and tried this code :
add_filter('meta_field_block_get_acf_field', function ($content, $field_name, $post_id) {
if ($field_name === 'logo_presse') {
$image_id = get_field($field_name, $post_id);
if ($image_id) {
$image_url = wp_get_attachment_image_url($image_id, 'full');
$permalink = get_permalink($post_id);
$content = '<a href="' . esc_url($permalink) . '"><img src="' . esc_url($image_url) . '" alt=""></a>';
}
}
return $content;
}, 20, 3);
I am sure of the field name, I choosedd “ID” in ACF field image, The image displays all right but no link.
Any help welcome…
Cheers
I would like not to display the text, but to render the shortcode that I insert into my custom field. How can I do this?
In my exemple it’s the shortcode of HubSpot Form
]]>I’d like to display a link as a button. There should be a “Display as” in the pro-version of the plugin, as per the instruction video option, but it is missing for me.
The field is a URL field, it does display as a URL, it’s only the button options which is missing.
]]>It looks like in 1.2 you introduced a breaking change to the name of the fields.
In 1.1.7 the field name was “simple_value_formated”
In 1.2.0 the field name is “simple_value_formatted”
The same t vs tt change was done in other fields.
This change broke some of our code and took quite some time to figure out why the field name had changed.
]]>Hello,
I created a custom metabox called “custom_metabox_event_location”. If I create a custom post type, use your block and save this setting, everything is working. Your metablock is showing the correct value of the metabox.
But I created a custom template for my custom post type following this guide: https://developer.www.ads-software.com/block-editor/reference-guides/block-api/block-templates/#custom-post-types.
The custom template is working and I added some of your metablock functions like “hideEmtpy” into my template, which you can see here:
'template' => array(
// Ort
array( 'mfb/meta-field-block', array(
'metaType' => 'postType',
'fieldType' => 'meta',
'fieldName' => 'custom_metabox_event_location',
'hideEmpty' => 'true',
'emptyMessage' => 'Kein Ort',
'tagName' => 'p',
) ),
)
If I create a new custom post type, everything is showing correct.
The problem is, that if I enter no value in the metabox for “custom_metabox_event_location”, save my custom post type and then go back to the edit screen, the value for “hideEmpty” is back to “false”.
Why isn’t this being saved? Do I have to add something to my custom post type?
]]>In this tutorial, we will show you how to use MFB to display any kind of content, not just real meta fields. You can use it as a placeholder to display your content with your familiar PHP code, instead of building custom Gutenberg blocks. The following example still queries meta fields, but you can get the idea and display anything with post_id
as a context parameter.
This tutorial will show you how to query content from a related post type using dynamic
fields. These fields are called dynamic
because they are not real, but only placeholders to display content. We will use ACF for this example, but you can apply the same technique to any meta-field framework with the hook meta_field_block_get_block_content
. The example we will use is Event
and Location
. Events will have fields like title, start date, price, etc. Locations will have fields like title (name), city, address, etc. We will use an ACF post object field named event_location
in the event post type to store its location ID. Here is the code to display location information on a single event template or in a query loop of event type:
// Display the name (title) of the location. You also should choose the tag name setting as a heading tag such as h1, h2, h3, etc.
add_filter(
'meta_field_block_get_acf_field', function ( $block_content, $post_id, $field, $raw_value ) {
$field_name = $field['name'] ?? '';
// Replace prefix_location_name with your unique name.
if ('prefix_location_name' === $field_name ) {
// Get post id for location post.
$event_location_id = get_field('event_location', $post_id);
// Has a value.
if ($event_location_id ) {
$block_content = get_the_title($event_location_id);
}
}
return $block_content;
}, 10, 4
);
// Display the address of the location.
add_filter(
'meta_field_block_get_acf_field', function ( $block_content, $post_id, $field, $raw_value ) {
$field_name = $field['name'] ?? '';
// Replace prefix_location_address with your unique name.
if ('prefix_location_address' === $field_name ) {
// Get post id for location post.
$event_location_id = get_field('event_location', $post_id);
// Has a value.
if ($event_location_id ) {
$block_content = get_field('address', $event_location_id);
}
}
return $block_content;
}, 10, 4
);
// Display the city of the location.
add_filter(
'meta_field_block_get_acf_field', function ( $block_content, $post_id, $field, $raw_value ) {
$field_name = $field['name'] ?? '';
// Replace prefix_location_city with your unique name.
if ('prefix_location_city' === $field_name ) {
// Get post id for location post.
$event_location_id = get_field('event_location', $post_id);
// Has a value.
if ($event_location_id ) {
$block_content = get_field('city', $event_location_id);
}
}
return $block_content;
}, 10, 4
);
To use these three dynamic
fields, you need to drop three MFB instances into your template or page and set the field type for all of them as ACF. Then, set the field name for them as prefix_location_name
, prefix_location_city
, and prefix_location_address
respectively. The above example is for a one-to-one or one-to-many relationship. For a many-to-many relationship, you should use an ACF relationship field to connect two post types. In that case, you need to modify the above snippets to loop through all locations and display their content in a markup of your choice. To display the reverse direction, i.e., event information on the location page, you should enable bidirectional relationships for your post object or relationship fields and write similar code to query event data.
Phi.
]]>Can you give me an example of a 1:n relationship? Say an Event cpt that lists more than one field from Location cpt: street, city. I created a field in group Event called: event_location (relationship) filter by post type: location. Then created two fields in group Location: street (text), city (text). From an Event I can add a Location but I don’t know how to make the two fields show up. Do I need to enter some code into the functions.php file?
]]>Hi Phi,
Mario here again:)
I have an ACF field with an url called try_link. Want to display a link with href=”try_link” in a button text: “Use Template”
Tried to use, but the link is going to the post:(
add_filter( 'meta_field_block_get_acf_field', function ( $block_content, $post_id, $field, $raw_value ) {
$field_name = $field['name'] ?? '';
// Replace your_field_name with your unique name.
if ( 'try_link' === $field_name && $block_content !== '' ) {
$block_content = sprintf('Use Template', get_permalink($try_link), $block_content);
}
return $block_content;
}, 10, 4);
]]>
Hello, i created a custom post type (“presse” with post_tag taxonomy.
I added a custom field (“url_img”) to the taxonomy to add a featured image url.
I’m looking for a way to display this value on a Block Loop Request.
Thanks in advance for your reply.
I use this block to display the ACF custom field: price (type = number) in a custom template (site editor). I am using this field as a dollar amount so I add the PREFIX: $ but the number appears below the $ symbol instead of on the same line.
]]>Hi Phi, First – thank you for your work on this very helpful plugin. I am using ACF with a hybrid theme (_S) – I have a custom post type for “seminar” that has a relationship with another custom post type for “team members”. This allows me to include the featured image and excerpt from the “team post”. I am not sure how to include the featured image from the team member post within a query loop for “seminar” using your plugin – but it seems like it could be possible? I am using the a /parts/ folder to allow me to visually edit the archive-seminar part… Any help you can provide is appreciated.
]]>Please enable the ability to make the block’s output a link. When used in a loop, “isLink”:true would be useful to link to the post. When used outside loops, a custom link that can be specified via the toolbar would also be great.
]]>This is not working for me. I put “0” to show a zero when the value is empty, but the block just shows nothing.
]]>Hi,
I’m not sure if this is a problem, or I’m doing something wrong.
→ The block seems to “ignore” the context for the single term page.
]]>This block is easy to use for users and flexible to customize for developers. It provides some hooks that allow you to display any kind of meta fields and customize the output to whatever you need. Here are the three most important hooks:
1. The meta_field_block_get_block_content
hook
With this hook, you can change the output of the block for any kind of field, and it works with any meta-framework. Here is a basic example of how to use it:
add_filter( 'meta_field_block_get_block_content', function ( $content, $attributes, $block, $post_id ) {
$field_name = $attributes['fieldName'] ?? '';
// Replace your_field_name with your real field name.
if ( $field_name === 'your_field_name') {
$content = 'new content';
}
return $content;
}, 10, 4);
2. The meta_field_block_get_acf_field
hook
This hook is similar to the general one but only works with ACF Fields. The benefit of this hook is that you can see the changes on both the front end and the editor. Here is a basic example of how to use it:
add_filter( 'meta_field_block_get_acf_field', function ( $block_content, $post_id, $field, $raw_value ) {
$field_name = $field['name'] ?? '';
// Replace your_field_name with your real field name.
if ( $field_name === 'your_field_name') {
$content = 'new content';
}
return $content;
}, 10, 4);
3. The meta_field_block_kses_allowed_html
hook
If your field value contains some special HTML tags or attributes, there is a chance that they are not in the list of allowed tags to display on the front end. To fix that, you can use this hook to add your custom HTML tags or attributes to the allowed HTML tags list. Here is a basic example:
add_filter( 'meta_field_block_kses_allowed_html', function ( $allowed_html_tags ) {
$allowed_html_tags['tag_1'] = [
'tag_1_attr_1' => true,
'tag_1_attr_2' => true,
];
$allowed_html_tags['tag_2'] = [
'tag_2_attr_1' => true,
'tag_2_attr_2' => true,
];
return $allowed_html_tags;
}, 10, 4);
You can find many code snippets for the common use cases in the plugin description and easily copy and paste them into your site. If you still need further help, feel free to create a support thread here. I’m more than happy to help.
Thank you all for using this plugin.
Phi.
]]>Hi @mr2p
I have used the ACF image field and it works great. And you can choose the image size in your FSE template ??
I just wonder why the HTML do not add the srcset parameter like the wp_get_attachment_image usually do.
Have you notice that?
Cheers,
Grégoire