Job wordpress-directory-search-and-filter · revised 11 October 2026
Add search, filters and sorting to one WordPress directory or listing page
Add keyword search, up to three filters and sorting to one existing WordPress listing, with shareable addresses, working pagination and agreed behaviour for empty results.
You might be seeing
- Visitors scroll a long unfiltered list to find one entry
- The built-in site search returns pages and posts mixed with listing entries
- Filters reset when the visitor moves to page two
- A filter address cannot be shared because it does not change the page address
No passwords, keys, card details or admin invites needed to start.
What usually happened
A WordPress archive lists entries newest first and nothing else. Adding filters well means deciding where each filter value is stored, how it combines with search and sorting, how pagination keeps the choice, what happens when nothing matches, and how search engines should treat the many address combinations the filters create.
Who it’s for: Owner or agency of a WordPress site with a list of people, properties, events or resources that visitors cannot narrow down.
Usually starts when: The listing has grown past what visitors will scroll, enquiries ask "do you have one in this area?", or a filter plugin was tried and slowed or broke the page.
The result: On the one listing page you name, a visitor can search, apply up to three filters and sort, every result set has a shareable address that reproduces it, pagination keeps the choice, and an agreed fixture set returns the expected counts for each tested combination.
Check whether this job fits
A few short questions. Your answers stay on this page unless you choose to email them.
Checks you can run yourself
Try five searches yourself
Write down five things a visitor would look for and try to find each in the current list.
Look for: The ones you cannot find quickly. They become the test combinations.
Count the filter values
For each filter write how many different values there are.
Look for: Filters with a handful of values suit dropdowns; hundreds of values need a different design.
What you get
- The search and filter code as a small plugin or theme files, with install steps
- A test matrix of at least twelve search and filter combinations with expected and actual counts
- The agreed policy for filter addresses, written out
- Desktop and phone screenshots of the controls and results
- Steps to add a new filter value
Included
- One existing listing of posts or one custom post type whose filter values are stored as categories, tags, custom taxonomies or custom fields
- Keyword search limited to that listing, up to three filters and one or two sort orders
- Choices carried in the page address so a result set can be shared and reloaded
- An agreed empty-results state and an agreed policy for how search engines treat filter addresses
- A plain form that works with JavaScript switched off, with an optional script that updates the list without a reload
Not included
- Building the content type or entering the entries: use the custom content type job
- Map-based or distance search
- Live counts beside every filter option on very large lists
- Replacing WordPress's site-wide search
- Search of text inside uploaded documents
- A paid search service or plugin licence
How we know it’s done
Agreed with you before work starts. Each check produces evidence you keep.
Each of at least twelve search and filter combinations returns exactly the number and set of entries expected from the fixture set on staging
Evidence: The test matrix with expected and actual results
Moving to the next page, changing the sort or reloading the address keeps the same search and filters, and opening the address in a new browser window reproduces the result
Evidence: Recorded steps and screenshots
With JavaScript switched off the search and filter form still works and returns the same results for three combinations
Evidence: A recording or screenshots of the three runs
A combination with no matches shows the agreed empty state and returns the agreed status code
Evidence: The response code and screenshot for two empty combinations
Sign-off. You sign off after the staging checks pass and your site holder installs the code and confirms three of your own example searches on the live site.
If it fails. If the checks do not pass, you do not pay, and you keep the notes and the code written so far.
When it fits, and when we stop
It fits when
- The entries are WordPress posts or a custom post type with up to a few thousand entries
- Every value you want to filter on is already stored consistently in a taxonomy or a field
- You can state which combinations should work, with a few examples
- A staging copy exists
We stop and tell you if
- The entries live in an outside system rather than in WordPress
- The filter values are free text typed differently in each entry and need cleaning first
- The list has tens of thousands of entries or needs live availability or distance results
- The listing page is built by a page-builder widget whose query cannot be changed
- The site is a multisite network, which is quoted separately
What could go wrong
The feature is a small plugin or a short list of theme files. Deactivating the plugin or removing the files restores the unfiltered listing; no entries are changed.
Scroll the table sideways to read it all.
| Risk | How we handle it |
|---|---|
| The filter changes other queries on the site, such as sidebars or the admin list | The change is limited to the front-end main query of the named listing, and the reviewer checks other screens. |
| Many filter combinations create a huge number of crawlable addresses | We agree a written policy for them before building and explain the effect of each option. |
| A slow filtered query on a large list | We measure the response on a realistic fixture and stop and re-quote if it cannot meet the budget agreed first. |
A second reviewer checks that visitor input is validated and escaped, that the query only changes the named listing and not admin or other loops, and that the test matrix matches the fixture set.
How we deliver
We arrange the work and independent review, then show you the result against the agreed checks. You keep authority over your systems.
- Agree the filters, sort orders, empty-results behaviour and the policy for filter addresses
- Build a fixture set on staging that covers every filter value and edge case
- Build the search and filters on the main listing query so addresses are shareable, scoped to the listing only
- Check pagination, sorting, empty results and the page with JavaScript off
- Run the test matrix, measure the filtered page's response time on staging and record it against the budget agreed first
- Independent review of the query handling and escaping, then hand over
This is a one-off job, not emergency cover or a subscription. We confirm eligibility, the total price, a start window and a delivery date before you accept. Work starts only after agreed inputs, secure access, any licences and necessary permissions are in place. Hosting, plugin licence and supplier charges are excluded unless the written quote includes them. No charge or booking is created by an enquiry.
Need to keep it working?
Discuss adding a further filter or a new content type later.
Ongoing work is separately scoped and quoted: no monitoring, response-time guarantee or automatic subscription is included in this job.
Explore an ongoing engineering lane, or mention the responsibility you need in your enquiry.
What you can check
This is a new service. We have not delivered this job for a client yet.
Other ways to get this done
- A maintained filter plugin may do this with settings alone. If your values are tidy and your theme supports it, try a plugin on staging first.
- For a short list, a single page with a jump menu of categories is simpler than a filter.
Questions
Will it slow down my site?
We measure the filtered page on a realistic fixture and record it against a budget agreed first. If it cannot meet that budget we tell you before you pay.
Can visitors share a filtered result?
Yes, the choices are carried in the page address.
What about search engines?
Filter combinations can create many addresses. We agree a policy with you and explain the trade-offs rather than choosing silently.
Send an enquiry
Send us
- The address of the listing page and roughly how many entries it holds
- The filters you want and where each value is stored, if you know
- Three or four example searches a visitor would make and what they should find
- The theme and page editor in use
- Whether a filter or search plugin is already installed
Later, once you agree
- A staging copy with a realistic set of made-up or anonymised entries
- A staging admin login
- Your choice on the empty-results and filter-address policy once we have explained the options
- A company-controlled secure handoff agreed before access: no live passwords, keys, private code or customer records by ordinary email.
You keep the live site and its content. We build on a staging copy; your site holder installs the code on the live site.
Email fallback: open your mail app
If website submission is unavailable, review and send the fallback email yourself. An email fallback is not a website receipt. Or write to hello@syntheticindustry.ai with “wordpress-directory-search-and-filter” as the subject.