By Basharat Ali Khan | Last updated: October 27, 2026
WordPress custom fields not showing is one of the most common frustrations for anyone building with Advanced Custom Fields (ACF) or native custom fields. You add a value to a post, save it, check the front end, and nothing appears. In most cases the data is safe in the database. The problem is that nothing on the front end is set up to display it.
This guide explains why WordPress custom fields not showing happens and gives eight fixes, in the order I would check them, for both ACF and native WordPress custom fields.
Quick Answer
WordPress custom fields not showing usually means your template, builder or block never prints the value, or the field name in your code does not match the saved field. Confirm the data is saved, check the exact field name, make sure the template outputs it, and check the return format. For page builders, use the builder’s dynamic content feature.
What WordPress Custom Fields Not Showing Usually Means
Custom fields never display by themselves. They store extra data about a post, and something on the front end has to read and print that data. When that is missing, or points to the wrong name, the page shows nothing even though the data exists. That is why this is almost always a display problem, not a saving problem.
Fix 1: Confirm the Data Is Actually Saved
With WordPress custom fields not showing, rule out the simple case first. Open the post in the editor and check that the field value is still there after saving.
- ACF: confirm you are looking at the right field group and that it is assigned to this post type.
- Native custom fields, block editor: click the three-dot menu, choose Preferences > Panels and turn on Custom Fields.
- Native custom fields, classic editor: click Screen Options at the top and tick Custom Fields.
Also note that the native Custom Fields panel hides any field whose name starts with an underscore (such as _my_field). Those are treated as private, so they will not appear there even if they are saved.
Fix 2: Make Sure the Template Prints the Field
WordPress custom fields not showing is most often caused by a template that never asks for the value. Your theme’s template needs code that reads the field and prints it.
Native custom fields:
<?php echo esc_html( get_post_meta( get_the_ID(), 'your_field_name', true ) ); ?>
ACF, printing directly:
<?php the_field( 'your_field_name' ); ?>
ACF, getting the value first:
<?php $value = get_field( 'your_field_name' ); ?>
If this code is not present in the template that is actually used, the field will never appear. Use a child theme for template changes, so a theme update does not remove them, and take a backup first.
Fix 3: Match the Field Name Exactly
WordPress custom fields not showing is often a name mismatch. The name in your code must match the saved field name exactly, including capitals and underscores.
- In ACF, use the Field Name, not the Field Label. A field labeled “Price” may really be named
product_price, and usingpricein your code silently shows nothing. - For native fields, check the exact key shown in the Custom Fields panel.
- Look for stray spaces, hyphens in place of underscores, or a different capital letter.
Fix 4: Check You Are Editing the Right Template and Context
WordPress custom fields not showing can also mean you added the code to a template that is not used for that page, or the code runs where WordPress does not know which post to read from.
- Different post types, page templates and theme hierarchy rules use different files. Confirm which template your page actually uses.
- Inside the loop,
get_field()knows the current post. Outside the loop, pass the post ID, for exampleget_field( 'your_field_name', $post_id ). - For an ACF options page, use
get_field( 'your_field_name', 'option' ).
Fix 5: Check ACF Field Group Location Rules
If the field does not even appear in the editor, WordPress custom fields not showing is a location rule problem.
- Go to Custom Fields > Field Groups in your dashboard.
- Open the relevant group.
- Check the Location rules at the bottom and confirm they match the post type, page or template you are working on.
- Make sure the field group is set to Active.
Fix 6: Check the Return Format and Empty Values
WordPress custom fields not showing sometimes happens because the field returns something other than plain text. An ACF image field, for example, can return an array, an ID or a URL, depending on its Return Format setting. Printing an array with echo shows nothing useful.
For an image field set to return an Image Array:
<?php $image = get_field( 'hero_image' ); ?>
<?php if ( $image ) : ?>
<img src="<?php echo esc_url( $image['url'] ); ?>" alt="<?php echo esc_attr( $image['alt'] ); ?>">
<?php endif; ?>
Also check that the field actually has a value. A conditional check makes this easy to confirm:
<?php
$value = get_field( 'your_field_name' );
if ( $value ) {
echo esc_html( $value );
} else {
echo 'No value set';
}
?>
Fix 7: Use the Right Method in Elementor and Block Themes
WordPress custom fields not showing is common on sites built with page builders or block themes, because PHP template code is not used there at all.
- Elementor: display custom fields through Dynamic Tags in a widget. ACF dynamic tags need Elementor Pro, and JetEngine is another option.
- Block themes: there is no PHP template to edit. Newer versions of WordPress and ACF support block bindings, which connect a block to a custom field. Check the documentation for your versions.
- For native fields in the block editor, the field may also need to be registered so the editor can read it.
Fix 8: Clear the Cache and Rule Out Conflicts
If you fixed the code but the front end looks the same, a cache may be serving an old page. Clear your caching plugin and CDN cache, then test in an incognito window.
If everything else is correct, deactivate plugins one at a time to look for a conflict, starting with caching, optimization and security plugins that change page output.
Quick Reference Table
If WordPress custom fields not showing still leaves you unsure where to start, match your symptom here.
| Symptom | Likely cause | Fix |
|---|---|---|
| Value is gone after saving | Not saved, or a hidden or private field | Fix 1 |
| Field saves, nothing on the front end | Template does not print it | Fix 2 |
| Display code exists, still empty | Field name mismatch | Fix 3 |
| Works on some pages only | Wrong template, or wrong post context | Fix 4 |
| Field editor missing in the post | ACF location rules | Fix 5 |
| Prints “Array” or shows nothing | Return format, or empty value | Fix 6 |
| Site built with Elementor or a block theme | Needs dynamic tags or block bindings | Fix 7 |
| Code fixed but page unchanged | Cache or plugin conflict | Fix 8 |
Frequently Asked Questions
Why does my custom field show in the editor but not on the live page?
WordPress custom fields not showing like this means the data is saved correctly but your template, builder or block does not display it. Start with Fix 2.
Is there a difference between ACF and native custom fields for this issue?
The cause is the same for both: missing display code or a name mismatch. Only the function names differ, with ACF using the_field() and get_field(), and native fields using get_post_meta().
Can a plugin conflict cause WordPress custom fields not showing?
It is less common than a template or name problem, but it can happen, particularly with plugins that alter page output. Rule out the template code and field name first.
Why does the field print “Array?
The field is returning an array, not text. Image, gallery and relationship fields often do. Check the field’s Return Format and print the specific value you need, such as the image URL.
Do I need to know PHP to fix this?
Editing template code (Fixes 2 to 4 and 6) needs basic PHP. If you use a page builder with dynamic content, the fix is mostly settings-based.
Why are fields starting with an underscore missing in the editor?
WordPress treats them as private and hides them from the native Custom Fields panel. They can still be saved and read in code.
Final Thoughts
WordPress custom fields not showing almost always comes down to missing display code or a name that does not match what was saved. Confirm the data, check the exact field name, then make sure your template, builder or block prints it with the right return format.
Need Help With Custom Fields?
If WordPress custom fields not showing is still a problem after these steps, contact me here and I will set up your fields to display correctly, or see my custom plugin development service and WordPress services.
About the author
Basharat Ali Khan is a WordPress developer in Gilgit, Pakistan with 8+ years of experience building custom plugins, Elementor sites, and WooCommerce stores.
LinkedIn | WordPress.org profile
Related: WordPress Pagination Not Working | WordPress Excerpt Not Showing | WordPress REST API Not Working
