Sign inBlogSupportContact
Content

Filter WordPress posts and pages by anything

Every draft older than a month. Every post missing a featured image. Every post published by a specific author. Find them, act on them.

4 min read May 2026 filter post

Finding specific posts in WordPress is slow

You want every draft that hasn't been updated in 60 days so you can clean them up. WordPress's post list lets you filter by status or author, one at a time. Combining filters means exporting to CSV or writing a custom WP_Query.

For automations — "auto-publish every draft older than 30 days that has a featured image and a category assigned" — you need a programmatic filter the plugin gives you for free.

What most people do instead

Scroll the Posts admin listOne filter at a time. No way to combine status + date + image status + category.
Write a custom WP_QueryRequires developer. Every new criterion means a code change.
Export posts to CSV, filter in ExcelStale data. Manual. Can't trigger follow-up actions from the spreadsheet.

A better way: combine filters, loop in macros

Run filter post with any combination — post type, status, category, tag, author, featured image presence, content length, last modified date. Each match comes with full post details and feeds into a macro's for_each loop.

TrueCommander
Filter post
11 posts match
Old blog draft from Marchdraft · no image
Abandoned product announcementdraft · no image
Half-finished tutorialdraft · no image

Combine with update-post-meta for bulk changes. Filter posts matching a pattern, then for_each apply the same meta update. "Tag every draft older than 30 days with review_needed=1" is two macro steps.

How it works

Builds a WP_Query with the filters you pass, returning posts with full details (ID, title, status, author, categories, tags, dates, featured image URL, content excerpt). Default limit 200. Pass -limit=-1 for unbounded.

1
Choose filtersPost type, status, category, tag, author, image, content length, modified date
2
Combine as many as you needFilters AND together — "draft posts by author X modified before Y"
3
Pipe results into a macroEach matching post becomes a chain iteration for updates, deletes, or notifications
ParameterValue
-post_typepost, page, or any custom post type slug
-statuspublish, draft, pending, private, trash
-category / -tagTerm slug
-authorUser ID or username
-no_imagetrue to find posts missing featured images
-min_length / -max_lengthWord count thresholds
-modified_from / -modified_toLast-modified date range (absolute or phrases)
Can be used in

Real example

You have 300 posts on your blog, 47 of which are drafts you've abandoned. Every quarter you mean to clean them up. You never do.

You build a macro: filter post -status=draft -modified_to="90 days ago" → for_each: update_post_meta with cleanup_flag=1, then email yourself a list of IDs. Schedule monthly.

First of the month, you get an email: "11 draft posts flagged for cleanup." One click in the admin list lets you review and delete them. The clutter stops accumulating.

Goes further with TrueCommander

Ready?

Your content catalog as a query.

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.