Finding specific posts in WordPress is slow
You want every published post missing a featured image so you can fix how they look when shared. 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, "every month, flag published posts not updated in two years for a content refresh", you need a programmatic filter the plugin gives you for free.
What most people do instead
A better way: combine filters, loop in macros
Run filter post with any combination, post type, published state, category, tag, author, featured image presence, content length, last updated date. Each match comes with full post details and feeds into a macro's for_each loop.
Shown in advanced mode, where commands start with tp. In easy mode you type the same command without the tp prefix.
Combine with update-post-meta for bulk changes. Filter posts matching a pattern, then for_each apply the same meta update. "Tag every post not updated in two years 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.
| Parameter | Value |
|---|---|
-type | post, page, or any custom post type slug |
-published | Flag, limit to published posts (omit to include all statuses) |
-category / -tag | Term slug |
-author | User ID or username |
-no-image / -no-content | Flag, find posts missing a featured image or with empty content |
-words-below | Posts under this word count (e.g., -words-below=300) |
-updated-before | Posts not updated since this date (e.g., 2024-01-01) |
| Can be used in |
Real example
You have 300 published posts, and dozens are missing a featured image, so they look broken when shared on social. Every quarter you mean to fix them. You never do.
You build a macro: tp filter post -no-image → for_each: update_post_meta with needs_image=1, then email yourself the list of IDs. Schedule monthly.
First of the month, you get an email: "18 posts flagged, missing a featured image." You add images in your next content session. Your shares stop looking broken.
Goes further with TrueCommander
Frequently asked questions
tp filter post queries precisely, for example tp filter post -category=blog -author=admin, and returns the matching posts with their details.-words-below=300 to list posts under 300 words, -no-content for empty ones, and -no-image for posts missing a featured image, the shortlist for "expand, merge, or delete."-updated-before=2024-01-01 to surface posts nobody has touched since a given date, the refresh-or-retire pile. See the full content audit workflow.-type to target a post type, and combine it with status filters like -published to scope the results.-limit to change that, or -limit=-1 for no cap.