Meta Field Block – Display Custom Fields for ACF, Meta Box and More
This single-block plugin allows you to display custom fields, shortcode as blocks in the Block Editor. It supports custom fields for posts, terms, and users. It can be nested inside a parent block that has postId and postType context, such as Query Loop, WooCommerce Product Collection, Term Query, or used as a stand-alone block. You can display any field whose value can be retrieved by the core API (get_post_meta, get_term_meta, get_user_meta) and is a string or can be converted to a string. To display the field value in the Block Editor, it has to be accessible via the REST API or have the field type set to dynamic. You can also display custom fields created by the Advanced Custom Fields or Meta Box plugin explicitly. It supports all ACF field types and Meta Box field types whose values are strings or can be converted to strings. Some other ACF complex fields such as Image, Link, Page Link, True False, Checkbox, Select, Radio, Button Group, Taxonomy, User, Post Object and Relationship field types as well as Meta Box fields such as Select, Checkbox, Radio, Image, Video, Taxonomy, User, Post field types are also supported in basic formats. This plugin also provides developer-friendly hook APIs that allow you to easily customize the output of the block, display complex data type fields, or use the block as a placeholder to display any kind of content with object_id and object_type as context parameters. An edge case where this block is really helpful is when you need to get the correct post_id in your shortcode when you use it in a Query Loop. In that case, you can set the field type as dynamic and input your shortcode in the field name. The block will display it correctly on both the front end and the editor. Alternatively, if you only want to see the preview of your shortcode in the editor, you can also use this block as a better version of the core/shortcode. To quickly learn how this block displays custom fields, watch the short guide (for MFB version 1.3.4) by Paul Charlton from WPTuts. The video focuses on the Advanced Custom Fields plugin, but you can use a similar approach to display fields from other frameworks like Meta Box. Links Website How it works & tutorials MFB PRO What is the HTML output of a custom field? The HTML output of a custom field on the front end depends on the context of the field. It uses one of these core API functions to get the field value: get_post_meta, get_term_meta, get_user_meta. What is the HTML output of ACF fields? All basic field types that return strings or can cast to strings are supported – The HTML output is from the get_field function. Link type – The HTML output is: {title} There is no rel attribute if the target is not _blank Image type – The HTML output is from the wp_get_attachment_image function. The image size is from the Preview Size setting. True / False type – The HTML output is Yes if the value is true, and No if the value is false. Below is the code snippet to change these text values: add_filter( 'meta_field_block_true_false_on_text', function ( $on_text, $field_name, $field, $post_id, $value ) { return 'Yep'; }, 10, 5 ); add_filter( 'meta_field_block_true_false_off_text', function ( $off_text, $field_name, $field, $post_id, $value ) { return 'Noop'; }, 10, 5 ); Checkbox / Select type – The HTML output is: {item_value} , {item_value} The item_value can be either value or label, depending on the return format of the field. Multiple selected values are separated by ,. Below is the code snippet to change the separator: add_filter( 'meta_field_block_acf_field_choice_item_separator', function ( $separator, $field_name, $field, $post_id, $value ) { return ' | '; }, 10, 5 ); Radio button / Button group type – The HTML output can be either value or label, depending on the return format of the field. Page link type, Post object type – The HTML output for a single-value field is: {title} For a multiple-value field is: {title} {title} Relationship type – The HTML output is: {title} {title} Taxonomy type – The HTML output is: {term_name} {term_name} User type – The HTML output for a single-value field is: {display_name} For a multiple-value field is: {display_name} {display_name} For other complex field types, you can generate a custom HTML output by using the hook: apply_filters( 'meta_field_block_get_acf_field', $field_value, $post_id, $field, $raw_value, $object_type ) Or by using the general hook: apply_filters( 'meta_field_block_get_block_content', $content, $attributes, $block, $object_id, $object_type ) What is the HTML output of Meta Box fields? Similar to ACF fields, all basic fields that return strings or can cast to strings using the function rwmb_get_value are supported. The HTML output of cloneable basic fields is: {item_1_value} , {item_2_value} Use the following hooks to change the tag and the separator: apply_filters( 'meta_field_block_mb_clone_field_item_separator', ', ', $field, $post_id, $field_value ) apply_filters( 'meta_field_block_mb_clone_field_item_tag', 'span', $field, $post_id, $field_value ) Single image types – The HTML output is from the wp_get_attachment_image function. The image size is from the image_size setting. Image list types (Image, Image advanced, Image upload) – The HTML output is: Checkbox / Switch type – Similar to ACF True / False type. Multi-choice types (Select, Select advanced, Button group, Autocomplete, Image select, Checkbox list) – The HTML output is: {item_value} , {item_value} To display the label instead of the value, use this hook: apply_filters( 'meta_field_block_mb_field_choice_item_display_label', false, $field_name, $field, $post_id, $value ) To change the separator, use this hook: apply_filters( 'meta_field_block_mb_field_choice_item_separator', ', ', $file_name, $field, $post_id, $value ) Radio type – The output is the field value by default. To display label or change the separator, use the same hooks as the multi-choice types. Post type – The HTML output for a single-value field is: {title} For a multiple-value field is: {title} {title} Taxonomy, Taxonomy advanced type – The HTML output for a single-value field is: {term_name} For a multiple-value field is: {term_name} {term_name} User type – Similar to ACF User type Video type – The HTML output for a single-value field is: For a multiple-value field is: To display complex field types or change the output of a field, use the hook meta_field_block_get_mb_field or the general hook meta_field_block_get_block_content. Copy & paste snippets When using the meta_field_block_get_block_content hook to customize block content, we recommend selecting dynamic as the field type. This way, both the front end and the editor will show the changes. If you are working with ACF Fields, we suggest using the meta_field_block_get_acf_field hook to modify the field content. Similarly, Meta Box users should use the meta_field_block_get_mb_field hook to modify the content. ACF snippets can also be used with Meta Box fields, but you must use the correct hook name and replace the get_field function with the rwmb_get_value function. How to change the HTML output of the block? Using the meta_field_block_get_block_content hook: add_filter( 'meta_field_block_get_block_content', function ( $block_content, $attributes, $block, $post_id, $object_type ) { $field_name = $attributes['fieldName'] ?? ''; if ( 'your_unique_field_name' === $field_name ) { $block_content = 'new content'; } return $block_content; }, 10, 5); Using the meta_field_block_get_acf_field hook for ACF Fields only: add_filter( 'meta_field_block_get_acf_field', function ( $block_content, $post_id, $field, $raw_value, $object_type ) { $field_name = $field['name'] ?? ''; if ( 'your_unique_field_name' === $field_name ) { $block_content = 'new content'; } return $block_content; }, 10, 5); This basic snippet is very powerful. You can use it to display any fields from any posts, terms, users or setting fields. Please see the details in the below use cases. How to wrap the block with a link to the post within the Query Loop? Using the meta_field_block_get_block_content hook: add_filter( 'meta_field_block_get_block_content', function ( $block_content, $attributes, $block, $post_id ) { $field_name = $attributes['fieldName'] ?? ''; if ( 'your_unique_field_name' === $field_name && $block_content !== '' ) { $block_content = sprintf(' %2$s ', get_permalink($post_id), $block_content); } return $block_content; }, 10, 4); Using the meta_field_block_get_acf_field hook for ACF Fields only: add_filter( 'meta_field_block_get_acf_field', function ( $block_content, $post_id, $field, $raw_value ) { $field_name = $field['name'] ?? ''; if ( 'your_unique_field_name' === $field_name && $block_content !== '' ) { $block_content = sprintf(' %2$s ', get_permalink($post_id), $block_content); } return $block_content; }, 10, 4); This snippet only works with the block that has only HTML inline tags or an image. How to display an image URL field as an image tag? Using the meta_field_block_get_block_content hook: add_filter( 'meta_field_block_get_block_content', function ( $block_content, $attributes, $block, $post_id ) { $field_name = $attributes['fieldName'] ?? ''; if ( 'your_image_url_field_name' === $field_name && wp_http_validate_url($block_content) ) { $block_content = sprintf(' ', esc_attr($block_content)); } return $block_content; }, 10, 4); Using the meta_field_block_get_acf_field hook for ACF Fields only: add_filter( 'meta_field_block_get_acf_field', function ( $block_content, $post_id, $field, $raw_value ) { $field_name = $field['name'] ?? ''; if ( 'your_image_url_field_name' === $field_name && wp_http_validate_url($block_content) ) { $block_content = sprintf(' ', esc_attr($block_content)); } return $block_content; }, 10, 4); How to display multiple meta fields in a block? For example, we need to display the full name of a user from two meta fields first_name and last_name. add_filter( 'meta_field_block_get_block_content', function ( $block_content, $attributes, $block, $post_id ) { $field_name = $attributes['fieldName'] ?? ''; if ( 'full_name' === $field_name ) { $first_name = get_post_meta( $post_id, 'first_name', true ); $last_name = get_post_meta( $post_id, 'last_name', true ); // If the meta fields are ACF Fields. The code will be: // $first_name = get_field( 'first_name', $post_id ); // $last_name = get_field( 'last_name', $post_id ); $block_content = trim("$first_name $last_name"); } return $block_content; }, 10, 4); Choose the field type as dynamic and input the field name as full_name. How to display a setting field? For example, we need to display a setting field named footer_credit on the footer template part of the site. add_filter( 'meta_field_block_get_block_content', function ( $block_content, $attributes, $block, $post_id ) { $field_name = $attributes['fieldName'] ?? ''; // Replace `footer_credit` with your unique name. if ( 'footer_credit' === $field_name ) { $block_content = get_option( 'footer_credit', '' ); // If the field is an ACF Field. The code will be: // $block_content = get_field( 'footer_credit', 'option' ); } return $block_content; }, 10, 4); How to use MFB as a placeholder to display any kind of content? SAVE YOUR TIME WITH MFB PRO To display simple data type fields for posts, terms, and users, you only need the free version of MFB. MFB Pro can save you 90% of development time when working with ACF, or Meta Box complex fields. It achieves this by transforming your ACF complex field types into container blocks, which work similarly to core container blocks. This eliminates the need for creating custom blocks or writing custom code for displaying complex fields. Below are some video tutorials that demonstrate how MFB Pro can help you display complex fields: How to build a post template to display dynamic data without coding How to display ACF Repeater fields as a list, grid, or carousel How to display ACF Gallery fields as a grid, masonry, or carousel The main features of MFB PRO are: Display settings fields. Display ACF advanced layout fields: Group, Repeater, and Flexible content. Display ACF Repeater fields in a carousel layout, which is useful for displaying banner sliders. Display ACF Repeater fields in an accordion layout, which is useful for displaying FAQ pages. Display ACF Relationship and Post Object fields as a Query Loop. Display the ACF Image field as a core image block. Display the ACF Gallery field as an image gallery using grid, masonry, or carousel layouts. Display the ACF File field as a video block, an image block, a button block, or a link. Display the ACF Link field as a button block. Display the ACF URL field as an image block, a button block, a link, a video block, or an embed block. Display the ACF Email field as a button block or a link. Display the ACF oEmbed field as an embed block. Display the ACF Google Map field. All Meta Box field types that correspond to ACF field types support the same Pro features as ACF. Display the Meta Box Group field, similar to the ACF Group field. Display the Meta Box Cloneable Group field as a repeater block, similar to the ACF Repeater field. Supports row, stack, grid or carousel layouts. Display the Meta Box Post field as a Query Loop. Display the Meta Box single image field as an image block, and the image list field as an image gallery using grid, masonry, or carousel layouts. Display the Meta Box File single input field as a video block, an image block, or a button. Display a group field as a details block, and display a repeater or cloned group as an accordion. Set a single image sub-field (ACF Image or Meta Box Image) as the background image of a group field. Display custom fields from a specific post, term or user. Display a taxonomy field as a Terms Query block. Display a repeater or cloned group field as an core/accordion block. Since version 1.5.3, MFB Pro allows you to bind custom fields (ACF, Meta Box, core meta fields, and core settings) directly to core blocks (Heading, Paragraph, Button, Image, Video, Embed, and the background image/video/embed of Cover block). For more complex field types (Group, Repeater, Flexible Content), you can use MFB Pro to display the group as a container. Nested fields can then be displayed using the Sub Field Block, as before, or bound directly to core blocks. If this plugin is useful for you, please do a quick review and rate it on WordPress.org to help us spread the word. I would very much appreciate it. Please check out my other plugins if you’re interested: Content Blocks Builder – Build custom layouts and blocks visually in the Block Editor without needing a code editor, using only core blocks and native Gutenberg features. SVG Block – A block to display SVG images as blocks. Useful for images, icons, dividers, and buttons. It allows you to upload SVG images and load them into the icon library. Icon separator – A tiny block just like the core/separator block but with the ability to add an icon. Breadcrumb Block – A simple breadcrumb …
Top keywords
- field151×5.93%
- block119×4.67%
- display52×2.04%
- content47×1.85%
- acf44×1.73%
- name43×1.69%
- fields41×1.61%
- block content39×1.53%
- meta39×1.53%
- post36×1.41%
- image35×1.37%
- value30×1.18%
OffCanvas / Drawer – add sleek slide-in panels to any page
OffCanvas | Pricing | Support | Demo Create high-converting popups, slide-in panels, and responsive navigation drawers inside the WordPress block editor (Gutenberg) with ease. OffCanvas / Drawer is a lightweight, performance-optimized WordPress popup plugin and Gutenberg popup builder. It allows you to design custom OffCanvas menus, drawer menus, side panels, and interactive popups that slide in or fade in from any viewport direction: left, right, top, or bottom. Whether you need a sleek mobile menu, a WooCommerce cart drawer, an exit intent popup to recover abandoned carts, custom slide-out contact forms, site announcements, or an interactive help desk—this plugin does it all without requiring you to write a single line of code. Built Natively for Gutenberg (Block Editor) Designed specifically for the block editor, it supports full InnerBlocks integration. You can drop any Gutenberg block (paragraphs, images, headings, contact forms, navigation blocks, or custom widgets) directly inside the slide-in panel. It also features a built-in shortcode generator, allowing you to save layouts as templates and embed them anywhere on your website using a simple shortcode. Smart Behavior, Triggers & Targeting Go beyond basic popups. Trigger drawers based on visitor actions like scroll depth, time delay, user inactivity, element visibility, or exit intent. With advanced targeting rules, you can display or hide popups on specific pages, target specific user roles, and schedule marketing campaigns with timezone-aware start and end dates. Dedicated Analytics Dashboard Track how your floating popups and slide menus perform. The built-in Analytics dashboard measures impressions, conversions, and conversion rates, giving you the insights you need to optimize your layout and strategy. Silky-Smooth Animations & Device Optimization Provide a premium user experience with responsive positioning (e.g., a slide-in side panel on desktop, and a mobile bottom sheet on phones), touch/swipe gesture controls, and independent opening and closing transition effects. Add a modern backdrop blur filter to keep your content in focus. The plugin is fully responsive, SEO-friendly, exceptionally lightweight, and built to integrate seamlessly with any WordPress theme. Key Features Native Gutenberg Block: Design your slide-in panels visually inside the WordPress Block Editor with live preview. InnerBlocks Integration: Place any block inside the drawer, including forms, navigation, WooCommerce blocks, and custom shortcodes. Shortcode Generator: Save and reuse OffCanvas designs globally using a clean shortcode manager. Advanced Smart Triggers: Open panels automatically based on exit-intent, scroll depth, time delay, element visibility, or user inactivity. Advanced Targeting & Scheduling: Show or hide popups on specific pages, target user roles, and schedule campaigns with timezone support. Built-in Analytics: Monitor impressions, conversions, and conversion rates with a dedicated, beautiful dashboard. Independent Close Animations: Customize exit transition animation types, easing, and duration separate from opening transitions. Responsive Layouts & Mobile Gestures: Set device-specific positions (e.g., mobile bottom sheets) and support smooth touch swipe gestures. Floating Action Button (FAB): Custom trigger buttons that anchor to screen corners with drag-and-drop builder positioning. Aesthetic Backdrop Filters: Style the background overlay with custom colors, opacity levels, and modern backdrop blur effects. Free Features Layout & Positioning Four-Direction Placements: Set the slide-in drawer to slide from the Left, Right, Top, or Bottom edge of the screen. Default Trigger Button: Toggle the drawer panel open or closed with a customizable inline button. Body Scroll Lock: Prevent background body scrolling when the OffCanvas panel is active to improve readability. Standard Backdrop Overlay: Enable a dark overlay backdrop behind the active panel to draw focus to content. Trigger Button Customization Block Alignment: Align the trigger button to the Left, Center, or Right within your page layout. Typography Controls: Adjust the font size, font family, and font weight of the button text. Color Customization: Full control over trigger button text and background colors (normal and hover states). Ripple Click Effect: Add an optional modern material ripple animation on click. Margin Controls: Fine-tune trigger button outer margins for perfect page alignment. Close Button Customization Flexible Styling: Pick custom colors and backgrounds for the close icon to fit your branding. Size & Shadow: Adjust the close button scale (in pixels) and box shadow. Predefined Placements: Anchor the close button to the Top-Right, Top-Left, Bottom-Right, or Bottom-Left corners. Header & Typography Styling Editable Drawer Header: Customize the text of the header title to greet or direct visitors. Title Styling: Control header typography (font size, font weight) and text colors. Header Spacing & Background: Customize header background color, padding, and visibility options. Templates & Shortcode Generator Dedicated Shortcode Builder: Create drawers, save them as global templates, and copy the shortcode [offcanvas-block id="..."] from the dashboard list. InnerBlocks Compatibility: Drop native Gutenberg blocks, WooCommerce widgets, or contact forms into the drawer content. Pro Features Upgrade to OffCanvas Pro to unlock advanced targeting, styling, and behavior controls to build professional marketing campaigns: Analytics & Performance Tracking Dedicated Analytics Dashboard: Monitor impressions, conversions, and conversion rates directly in WordPress. Per-Drawer Identity: Give each OffCanvas its own Analytics Label so several drawers on the same page stay easy to tell apart. Impression Tracking: Keep track of how many times each slide-in panel or popup is viewed. Conversion Rate Measurement: Understand which drawers convert best with automatic conversion rate calculation. Date Ranges & Trends: Compare any period against the one before it, with daily, weekly, or monthly charts and an activity heatmap. Export & Data Management: Download a CSV report, or delete analytics data for one drawer or all of them, without touching the drawers themselves. Advanced Targeting & Scheduling Page-Level Targeting: Show or hide popups on specific pages, posts, or custom post types. User Role Targeting: Display targeted drawers only to logged-in users, administrators, authors, editors, customers, or guests. Campaign Scheduling: Schedule campaign popups to automatically start and end at specific dates and times. Timezone Support: Set schedules based on your WordPress site’s timezone or UTC for accurate global campaigns. Smart Auto Triggers Exit Intent Detection: Trigger the slide-in drawer automatically when the user’s cursor moves to leave the viewport on desktop. After Time Delay: Open the panel automatically after a configurable delay (in seconds or minutes). Scroll Depth Trigger: Open the panel when a visitor scrolls down a specific percentage (e.g., 50%) of your page. Target Section in View: Open the drawer automatically when a specific CSS selector (Class or ID) scrolls into the viewport. On Inactivity: Display the popup after a period of user inactivity to re-engage visitors. Trigger Frequency Controls: Limit popup visibility (Always, Once per session, Once per day) using sessionStorage and localStorage to prevent visitor fatigue. Floating Action Button (FAB) Trigger Corner Anchor Placements: Place the trigger as a Floating Action Button in the Bottom-Right, Bottom-Left, Top-Right, or Top-Left corners. Custom Absolute Positioning: Position the FAB anywhere on the screen with drag-and-drop editor control. Features a smart 8px Euclidean threshold to prevent accidental shifts. Offset & Layout Controls: Adjust X and Y offset values to ensure perfect alignments with other screen elements. Visual Effects: Set button size, icon size, border radius, pulse animations, custom shadows, and hover transitions. Rotation Angle: Rotate the FAB to match vertical triggers or layout designs. Animations & Transition Controls Premium Transition Types: Slide, Fade, Push, Reveal, Zoom, Flip, and Bounce effects. Push: Displaces the page by the panel’s own size while the panel travels in alongside it, so the page and panel move together. Configurable Opening Transitions: Set entry duration times in milliseconds (100ms – 5000ms) and select easing presets (ease, ease-in, ease-out, ease-in-out, linear). Independent Close Animations: Customize exit transitions with a separate exit animation type, duration, and easing, or choose to reuse the opening animation. Mobile & Touch Optimizations Mobile-Specific Placement: Override the panel position specifically for mobile devices (e.g., Slide-in Right on desktop, Bottom Sheet on mobile). Mobile Slide Direction: Customize slide-in directions specifically for mobile visitors. Touch & Swipe Gestures: Smooth, native-feeling swipe-to-open and swipe-to-close controls on touch devices. Premium Design & Backdrop Blur Responsive Dimensions: Customize the panel width and height independently for Desktop, Tablet, and Mobile screens. Layered Backdrop Material: A saturated blur pane, your own tint colour, and a soft depth wash that clears toward the panel — depth and focus rather than a flat dark overlay, with custom overlay colours, opacity and blur (0px – 30px). Custom Close Button Icon: Upload or input any custom SVG string to replace the default close button icon. Borders & Hover Shadows: Add custom borders, border radius, and hover state box-shadows on trigger buttons. External Custom Trigger Custom Selectors: Bind the OffCanvas drawer to any custom link, menu item, or button by inputting its Class or ID (e.g., .my-custom-button or #open-drawer-link). Query Loop Ready: Repeat the drawer for every post in a Query Loop and each card opens its own panel, with Post Title, Excerpt, Featured Image, or custom fields inside the panel showing that card’s post. Hide Default Trigger: Keep the built-in trigger button hidden when using custom CSS selectors to trigger the panel.