Posts Panel
The posts panel (admin/posts.php) is where you manage every article on your site — drafts, scheduled posts, published content, and the trash. This page covers every feature in the panel in the order you'll encounter them.
Filter bar
Along the top:
- Status tabs: All · Published · Draft · Scheduled · Trash with live counts
- Search: Full-text across title and content
- Category filter: Dropdown of every category
- Date range: From / To date picker
- Author filter: Appears only if your site has multiple authors
Every filter combines — search for "protein" + status Draft + category Nutrition narrows the list accordingly. Filters preserve across pagination and reloads via URL query params.
Bulk actions
Check the box in the table header to select every row on the current page, or individual boxes for a custom selection. The bulk action dropdown supports:
- Move to Trash — Soft delete (recoverable)
- Restore — Only visible when viewing the Trash tab
- Delete Permanently — Only visible in Trash; cannot be undone
- Publish — Mass-publish drafts
- Move to Draft — Unpublish
Bulk actions always require CSRF validation — if you see "Security validation failed", refresh the page and try again.
Row actions
Hover over any row to reveal:
- Edit — Opens the post editor
- View — Opens the live post (published only)
- Trash / Restore — Soft delete or recover
- Delete Permanently — Hard delete, only in Trash tab
All row actions are form POSTs with CSRF tokens (never GET) so they can't be triggered by malicious links pasted into chat or email.
Quick edit
Click the post title once to open inline quick-edit — lets you change title, slug, status, and categories without opening the full editor. Useful for batch renaming or reorganizing.
Common tasks
Publishing a batch of drafts at once
Filter by Status = Draft → select all → Bulk action = Publish → Apply. All selected posts go live with the current timestamp.
Finding posts linking to a specific URL
Use the Search box with the URL (or a unique fragment of it). The search matches post content, so internal link audits are fast.
Rescheduling a missed post
If a scheduled post's date passed but it didn't publish (cron wasn't running), filter by Status = Scheduled → Bulk action = Publish to push them live immediately.
Cleaning up old drafts
Date filter "To" = 6 months ago + Status = Draft → Bulk action = Move to Trash → then empty trash under Settings.