Hi @beemode58 –
Good news — WP Job Manager already works the way you’re describing, and nothing needs to be deleted. Expired listings are the archive: they stay in the database indefinitely, remain fully visible and editable in the admin, and are hidden from visitors browsing the job board. Nothing is removed unless you deliberately enable deletion.
Here’s how to clean things up:
- Go to Job Listings in the WordPress admin. Sort or filter to find the old listings you want to retire.
- Tick the ones you want to archive, then choose Expire Job Listings from the Bulk actions dropdown and click Apply. Their status changes to Expired.
- Go to Job Manager → Settings → Job Listings and confirm Expired Listings → “Hide expired listings” is checked. This keeps them off the job board for visitors.
- While you’re there, “Hide Expired Listings Content” is worth leaving checked too. If anyone still has an old direct link to a listing, they’ll see the title and a “This listing has expired” notice rather than the full job details.
Once that’s done, the listings are gone from the public board but still sitting in Job Listings → Expired in the admin for your manager’s future reference. You can flip any of them back to Published at any time.
One thing worth checking, since your listings from 3+ years ago never expired on their own: under Job Manager → Settings → Job Submission, look at Listing duration. If that field is blank, listings are set to never expire, which would explain why the old ones are still live. Setting it to a number of days (30 is the default) means future listings will expire automatically and you won’t need to do this cleanup by hand again.
If you’d like a browsable archive rather than just the admin list, you can also create a page with [jobs post_status="expired"] to list only expired jobs — just keep in mind that page would be public unless you restrict access to it.