Sign inBlogSupportContact
Content

Read WordPress post meta cleanly from the admin

Browse custom fields, SEO data, WooCommerce product meta. Filter by key, prefix wildcard, or noisy internals hidden by default. No phpMyAdmin required.

3 min read May 2026 get post meta

Inspecting post meta shouldn't need phpMyAdmin

A plugin broke, and you suspect it's leaving stale meta on your posts. Or a custom field isn't rendering where you expect. To see the raw meta for a post, the standard options are: re-enable the deprecated WordPress Custom Fields UI, or open phpMyAdmin and write a SQL query.

Both options are heavy when you just want to glance at what's on a post.

What most people do instead

Run SQL in phpMyAdminRequires database access. Joining postmeta is messy. Hosts often disable phpMyAdmin.
Enable Custom Fields UIDeprecated. Shows everything, including WP internals you don't care about.
Write var_dump(get_post_meta($id)) in functions.phpOutputs everything including serialized gunk. Noisy. Requires theme edits.

A better way: filtered, readable meta output

Run get post meta with a post ID. The command returns meta as a clean key-value list, with noisy internal keys hidden by default. Filter by specific keys, prefix wildcards like _seo_*, or name internals explicitly to include them.

TrueCommander
Post meta (filtered)
5 keys match
_seo_title = Best Tips For WordPress SEO
_seo_description = Concrete, practical SEO techniques...
_seo_keyword = wordpress seo tips
_seo_og_image = /uploads/2026/05/og.jpg
_seo_noindex = 0

Prefix wildcards unlock bulk inspection. Pass -filter="_yoast_*" to see all Yoast-related meta. Pass -filter="_stock,_price,_sku" for a comma-separated list. Noisy internals like _edit_lock stay hidden unless you explicitly name them.

How it works

Wraps get_post_meta and applies noise filtering. Internal keys (_edit_lock, _edit_last, etc.) are hidden unless named explicitly in -filter. Empty -post_id falls back to current post context.

1
Pass a post ID (or let it use current post)Omit -post_id when running inside a macro triggered on a post event
2
Optional: filter by keySingle key, comma-separated list, or prefix wildcard like billing_*
3
Use returned meta in downstream macro stepsEach key becomes a chain result referenceable as {{step1._seo_title}}
ParameterValue
-post_idTarget post ID. Empty uses current post context.
-filterSingle key, comma-separated list, or prefix wildcard (_seo_*)
Hidden by defaultInternal keys: _edit_lock, _edit_last, and similar
ReturnsAll matching keys as chain results — reference as {{step1.key_name}}
Can be used in

Real example

You're migrating from Yoast SEO to Rank Math. You need to copy every _yoast_wpseo_* meta key to its Rank Math equivalent, for every post.

The macro: filter post returns every published post → for_each: get post meta -filter="_yoast_wpseo_*" to pull Yoast data → update post meta with the equivalent Rank Math key. Every post migrated without losing a single SEO override.

Goes further with TrueCommander

Ready?

Inspect post meta without phpMyAdmin.

This is one of 91 commands. All included with every license.

Cookies. The short version.

Essential cookies keep the cart and theme working. Analytics only fire if you say yes. Read our policy.