HXSE — Code-First Search
Code-first search & filter for WordPress. Define filters with PHP arrays, output with a shortcode. Powered by htmx — no page reloads.
Use with caution
HXSE — Code-First Search works, but test it on a staging site before relying on it in 2026. Was last updated 1 month ago, and scores 60/100 on our health check.
- Tested with the latest WordPress (7.1)
- Small user base (<10 active installs)
- Very few reviews so far
How does it stack up?
Side-by-side on installs, updates, ratings & supportDaily downloads
Download spikes usually follow a new release — each site that auto-updates counts as a download.
Rankings
Where HXSE — Code-First Search stands todayWordPress.org search rankings
Live position in the plugin search, top 100| Keyword | Position |
|---|---|
| ajax | >100 |
| custom post type | >100 |
| filter | >100 |
| search | >100 |
| shortcode | >100 |
About HXSE — Code-First Search
From the official readme · v2.2.0Description
HXSE — Code-First Search lets you define search filters with PHP arrays and output them with a simple shortcode. No JavaScript configuration required. Powered by htmx for seamless, no-reload filtering.
Why HXSE?
- Code-first — Define everything in PHP arrays. Version-control friendly.
- No page reloads — htmx handles all filtering and pagination seamlessly.
- AI-friendly — Simple, consistent schema structure that AI agents can read and write.
- No dependencies — htmx is bundled. No jQuery required.
- Fully customizable — All styles use CSS custom properties (design tokens). Ships with
DESIGN.mdfor a complete variable reference and customization examples.
Filter Types
search— Keyword searchtaxonomy— Filter by taxonomy / categorymeta— Filter by custom field value or rangedate— Filter by yearrelation— Filter by related postselect— Filter external-source data by field value (api / rss / xml, v1.8.0+)
UI Types
select— Dropdownradio— Radio buttonscheckbox— Multiple selectionrange— Min/max slider (for numeric meta fields)
Pagination Modes
pager— Numbered page links with count displayloadmore— “Load more” button
Basic Usage
Define a schema in your theme’s functions.php:
add_filter( 'hxse_schemas', function( $schemas ) {
$schemas['staff_search'] = [
'post_type' => 'staff',
'filters' => [
['key' => 'keyword', 'type' => 'search', 'label' => 'キーワード'],
['key' => 'department', 'type' => 'taxonomy', 'label' => '部署',
'taxonomy' => 'department',
'ui' => 'checkbox',
],
],
'pagination' => [
'mode' => 'pager',
'per_page' => 12,
],
'template' => 'hxse-staff.php',
];
return $schemas;
} );
Then place the shortcode on any page:
[hxse id="staff_search"]
External Services
This plugin bundles htmx (https://htmx.org/) for handling AJAX requests without page reloads. htmx is included locally within the plugin and does not make any external network requests. It is licensed under the BSD 2-Clause License.
- htmx: https://htmx.org/
- htmx License: https://github.com/bigskysoftware/htmx/blob/master/LICENSE
Installation
- Upload the
hxse-code-first-searchfolder to/wp-content/plugins/. - Activate the plugin through the Plugins menu in WordPress.
- Add
hxse_schemasfilter to your theme’sfunctions.phpor a custom plugin. - Add
[hxse id="your_schema_id"]shortcode to any page.
Frequently asked questions
Do I need to write JavaScript?
No. HXSE handles all htmx configuration automatically. You only write PHP to define your filters.
Can I use multiple search instances on one page?
Yes. Use the prefix option in url_params to avoid parameter conflicts.
How do I customize the result template?
Create hxse/your-template.php in your theme directory and specify it in the schema’s template key.
Does it work with custom fields from ACF?
Yes. Use type: 'meta' with the appropriate meta_key.
Changelog
2.2.0
- Added: Sort in static (Distan) mode — the
sortschema (wp_query keysdate_desc/date_asc/title_asc/title_desc/menu_order) is reproduced client-side; composes with filters and pagination, resets to page 1 on change - Docs: Documented static-site mode, client-side pagination, and sort across the bundled reference docs (ai-reference.md, llms.txt, HXSE-manual.md, DESIGN.md)
2.1.0
- Added: Client-side pagination in static (Distan) mode — honors the schema’s
paginationsettings (per_page,range, prev/next/first/last labels,count_format); no server or REST needed - Added: Pagination works with or without filters — filters narrow the set first, then results are paged, and the page resets to 1 when a filter changes
- Note: Set
pagination.modetonone(orper_pageto 0) to render all items on a single page, as in 2.0.0; abovehxse_static_max_itemsthe plain-list fallback still applies
2.0.0
- Added: Static-site (Distan) mode — when a page is rendered by a static site generator, HXSE now serves a self-contained, htmx/REST-free variant so search keeps working after WordPress is removed from production
- Added: Auto-detection of Distan generation via the
X-Distan-Renderrequest header (no configuration); force it per schema with'static' => true|false, or globally via thehxse_static_activefilter - Added: Client-side filtering over the baked result set for
wp_querysources —search,taxonomy, and non-rangemetafilters run in the browser againstdata-*attributes; live count and no-results are updated without a server - Added:
hxse_static_max_itemsfilter (default 500) — above the cap, static mode degrades to a plain paged list instead of shipping an oversized dataset to the browser - Note: In static mode htmx and
hxse.jsare not enqueued (they depend on the REST endpoint that a static site does not have); only the stylesheet is loaded - Note:
range/date/relationfilters, sort, and thetabledisplay are not reproduced client-side in this release; externalapi/rss/xml/sourcesare baked as a filter-less snapshot
1.9.1
- Security: Remote API/RSS fetch now uses
reject_unsafe_urlsto block requests to internal IPs and unsafe ports (SSRF hardening, series-wide rollout of the fix introduced in HXFE 1.4.6)
1.9.0
- Added: Filter, sort, and pagination support for merged mode (
sources) — the v1.8.0 external-source filter UI now works on merged multi-source data (opt-in: enabled whenfilters,sort, orpaginationis present in the schema) - Added: REST endpoint handling for merged-mode schemas — filter interactions and pager navigation now update results without page reloads, same as other modes
- Note: Merged items are normalized to a common shape (
title/link/date/excerpt/source), so filters and sort definitions target these fields — e.g. aselectfilter onsourcelets visitors narrow results to one feed - Note: All filtering runs in memory against merged cached data. No remote re-fetches on filter interactions. Schemas without
filters/sort/paginationbehave exactly as before.
1.8.0
- Added: Filter UI for external sources (
api/rss/xml) —searchandselectfilter types now work on fetched data (opt-in: enabled whenfilters,sort, orpaginationis present in the schema) - Added:
selectfilter type — exact-match filtering on any item field, with'options' => 'auto'to generate choices from the data automatically - Added:
sortsupport for external sources — sort definitions acceptfield,order, andcompare(‘string’ / ‘numeric’ / ‘date’) - Added: Pagination for external sources —
per_page,show_count, andshow_pageswork on fetched data via in-memory slicing (pager mode only; loadmore is not supported for external sources) - Added:
items_keyschema key — extract the item list from wrapped JSON payloads (dot notation supported, e.g. connpass’sevents) - Added: Bundled default template
templates/api.php— external-source schemas without a custom template now render a clean list instead of raw JSON debug output - Note: All filtering, sorting, and pagination run in memory against cached data. Filter interactions never trigger remote re-fetches.
- Note: Fully backward compatible — schemas without
filters/sort/paginationbehave exactly as before, and custom templates keep receiving data unchanged.
For developers
Is this your plugin? Show off the numbers.
Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.
Best HXSE — Code-First Search alternatives
All ajax plugins →FAQ
HXSE — Code-First Search: quick answers
Straight answers, pulled from live WordPress.org data.
Live data from WordPress.org · checked Oct 2, 2026
Is HXSE — Code-First Search free?
Yes. HXSE — Code-First Search is free to download and use from the official WordPress.org plugin directory.
Is HXSE — Code-First Search safe to use in 2026?
HXSE — Code-First Search works, but test it on a staging site before relying on it in 2026. Was last updated 1 month ago, and scores 60/100 on our health check.
How many websites use HXSE — Code-First Search?
HXSE — Code-First Search is active on <10 WordPress websites and has been downloaded 706 times since it launched in June 2026. It was downloaded 61 times in the last 30 days.
Does HXSE — Code-First Search work with WordPress 7.1?
Yes. The developer has tested HXSE — Code-First Search up to WordPress 7.1.2, the latest release. It requires WordPress 6.0 or newer.
What PHP version does HXSE — Code-First Search need?
HXSE — Code-First Search requires PHP 7.4 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.
When was HXSE — Code-First Search last updated?
The latest version, 2.2.0, was released on August 20, 2026 (1 month ago).
Who makes HXSE — Code-First Search?
HXSE — Code-First Search is developed and maintained by youheiokubo.
What are the best alternatives to HXSE — Code-First Search?
The most popular alternatives to HXSE — Code-First Search are zipaddr-jp (50K+ installs), SearchWP Live Ajax Search (50K+ installs) and WP-Polls (40K+ installs).
Powered by PageForge
Want thousands of pages that rank like these? Build them in an afternoon.
This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.
- CSV, Google Sheets & API data sources
- AI content, schema & internal links per page
- Works with Elementor, Gutenberg, Yoast & Rank Math
- Free on WordPress.org — no credit card