{"id":304655,"date":"2026-05-07T23:20:08","date_gmt":"2026-05-07T23:20:08","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/sk-live-search\/"},"modified":"2026-07-04T23:41:11","modified_gmt":"2026-07-04T23:41:11","slug":"ninoxa-live-search","status":"publish","type":"plugin","link":"https:\/\/scn.wordpress.org\/plugins\/ninoxa-live-search\/","author":17136103,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.3","stable_tag":"1.3.3","tested":"7.0.1","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Ninoxa Live Search","header_author":"Mohammad Anbarestany","header_description":"A plugin to add live search functionality to your WordPress site.","assets_banners_color":"d0d5db","last_updated":"2026-07-04 23:41:11","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/ninoxa-live-search\/","header_author_uri":"https:\/\/profiles.wordpress.org\/macse2\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":367,"num_ratings":0,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.8":{"tag":"1.0.8","author":"macse2","date":"2026-05-07 23:20:00"},"1.1.0":{"tag":"1.1.0","author":"macse2","date":"2026-05-11 19:26:47"},"1.1.1":{"tag":"1.1.1","author":"macse2","date":"2026-05-24 21:05:20"},"1.3.0":{"tag":"1.3.0","author":"macse2","date":"2026-05-31 16:29:52"},"1.3.1":{"tag":"1.3.1","author":"macse2","date":"2026-06-07 14:49:47"},"1.3.2":{"tag":"1.3.2","author":"macse2","date":"2026-07-04 22:54:03"},"1.3.3":{"tag":"1.3.3","author":"macse2","date":"2026-07-04 23:41:11"}},"upgrade_notice":{"1.3.3":"<p>Adds optional type-to-search for keyboard-first visitors. Disabled by default.<\/p>","1.3.2":"<p>Adds WordPress Playground live preview support on the plugin directory.<\/p>","1.3.1":"<p>Includes bug fixes for settings toggle persistence and keyboard focus handling in live search.<\/p>","1.3.0":"<p>Adds frontend search matching modes (keyword, whole word, fuzzy, and more) and Redesigned settings UI. Update recommended.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3599345,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3599345,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3599345,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3599345,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3599345,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3599371,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/\",\"preferredVersions\":{\"php\":\"7.4\",\"wp\":\"latest\"},\"features\":{\"networking\":true},\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"ninoxa-live-search\"},\"options\":{\"activate\":true}},{\"step\":\"setSiteOptions\",\"options\":{\"blogname\":\"Ninoxa Live Search Demo\",\"blogdescription\":\"Type in the search box to see instant AJAX results\"}},{\"step\":\"wp-cli\",\"command\":\"wp post create --post_title='WordPress performance tips' --post_content='Improve your WordPress site speed with caching, image optimization, and lightweight themes.' --post_status=publish\"},{\"step\":\"wp-cli\",\"command\":\"wp post create --post_title='Block theme search experience' --post_content='Block themes include a header search form that works great with live search plugins.' --post_status=publish\"},{\"step\":\"wp-cli\",\"command\":\"wp post create --post_title='Fuzzy matching demo' --post_content='Try searching for helo to see fuzzy matching tolerate one-character typos.' --post_status=publish\"},{\"step\":\"wp-cli\",\"command\":\"wp post create --post_title='AJAX search without page reload' --post_content='Live search returns results instantly as you type, powered by admin-ajax.php.' --post_status=publish\"},{\"step\":\"wp-cli\",\"command\":\"wp post create --post_title='Keyboard navigation and accessibility' --post_content='Navigate results with arrow keys, switch matching modes, and use screen reader friendly ARIA attributes.' --post_status=publish\"},{\"step\":\"wp-cli\",\"command\":\"wp post create --post_title='Multilingual search compatibility' --post_content='Ninoxa Live Search supports Polylang and WPML for multilingual WordPress sites.' --post_status=publish\"},{\"step\":\"runPHP\",\"code\":\"<?php\\nrequire '\\\/wordpress\\\/wp-load.php';\\n$content = '<!-- wp:heading {\\\"level\\\":2} -->\\n<h2 class=\\\"wp-block-heading\\\">Try Ninoxa Live Search<\\\/h2>\\n<!-- \\\/wp:heading -->\\n\\n<!-- wp:paragraph -->\\n<p>Type at least 3 characters below to see instant AJAX results.<\\\/p>\\n<!-- \\\/wp:paragraph -->\\n\\n<!-- wp:search {\\\"label\\\":\\\"Search\\\",\\\"showLabel\\\":false,\\\"placeholder\\\":\\\"Search posts...\\\",\\\"buttonText\\\":\\\"Search\\\",\\\"buttonUseIcon\\\":true} \\\/-->';\\n$page_id = wp_insert_post( array(\\n\\t'post_title'   => 'Home',\\n\\t'post_name'    => 'home',\\n\\t'post_content' => $content,\\n\\t'post_status'  => 'publish',\\n\\t'post_type'    => 'page',\\n) );\\nif ( $page_id && ! is_wp_error( $page_id ) ) {\\n\\tupdate_option( 'show_on_front', 'page' );\\n\\tupdate_option( 'page_on_front', $page_id );\\n}\\n$defaults = ( new ReflectionClass( 'Ninoxa_Live_Search_Options' ) )->getMethod( 'get_defaults' )->invoke( null );\\n$settings = array_merge( $defaults, (array) get_option( 'ninoxa_live_search_settings', array() ) );\\n$settings['search_match_any'] = '1';\\n$settings['search_match_fuzzy'] = '1';\\nupdate_option( 'ninoxa_live_search_settings', $settings );\"}]}"}},"all_blocks":[],"tagged_versions":["1.0.8","1.1.0","1.1.1","1.3.0","1.3.1","1.3.2","1.3.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3599360,"resolution":"1","location":"assets","locale":"","width":1024,"height":484},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3599360,"resolution":"2","location":"assets","locale":"","width":1024,"height":811},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3599360,"resolution":"3","location":"assets","locale":"","width":1024,"height":685},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3599360,"resolution":"4","location":"assets","locale":"","width":1024,"height":771}},"screenshots":[]},"plugin_section":[],"plugin_tags":[2109,5185,262239,944],"plugin_category":[],"plugin_contributors":[262240],"plugin_business_model":[],"class_list":["post-304655","plugin","type-plugin","status-publish","hentry","plugin_tags-ajax-search","plugin_tags-live-search","plugin_tags-real-time-search","plugin_tags-search","plugin_contributors-macse2","plugin_committers-macse2"],"banners":{"banner":"https:\/\/ps.w.org\/ninoxa-live-search\/assets\/banner-772x250.png?rev=3599345","banner_2x":"https:\/\/ps.w.org\/ninoxa-live-search\/assets\/banner-1544x500.png?rev=3599345","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/ninoxa-live-search\/assets\/icon.svg?rev=3599345","icon":"https:\/\/ps.w.org\/ninoxa-live-search\/assets\/icon.svg?rev=3599345","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ninoxa-live-search\/assets\/screenshot-1.png?rev=3599360","caption":""},{"src":"https:\/\/ps.w.org\/ninoxa-live-search\/assets\/screenshot-2.png?rev=3599360","caption":""},{"src":"https:\/\/ps.w.org\/ninoxa-live-search\/assets\/screenshot-3.png?rev=3599360","caption":""},{"src":"https:\/\/ps.w.org\/ninoxa-live-search\/assets\/screenshot-4.png?rev=3599360","caption":""}],"raw_content":"<!--section=description-->\n<p>Ninoxa Live Search adds an accessible, real-time AJAX-powered live search to your WordPress site. It supports multilingual sites via Polylang and WPML.<\/p>\n\n<ul>\n<li>Use a standard WordPress search form; results appear below the input.<\/li>\n<li>Min query: 3 chars. Shows configurable number of results (defaults to 10) + a \"More results...\" link.<\/li>\n<li>Manage plugin options from the <strong>Ninoxa Live Search<\/strong> admin menu.<\/li>\n<li>The default shortcut is <strong>Ctrl + \/<\/strong>, and you can replace it with your own key combination or disable it completely.<\/li>\n<li>Optional <strong>type-to-search<\/strong>: when enabled, typing two characters outside any input focuses the search field and inserts the text.<\/li>\n<\/ul>\n\n<p>Features:\n* Real-time search results as you type\n* Frontend matching modes (keyword, any word, exact phrase, whole word, fuzzy) using the native WordPress search engine; fuzzy mode tolerates one-character typos via edit-distance-1 LIKE patterns\n* AJAX-powered with nonce security\n* Polylang and WPML compatible\n* Accessible (ARIA attributes)\n* Configurable keyboard shortcut\n* Optional type-to-search (focus search when typing two characters outside any input; disabled by default)\n* Lightweight and fast<\/p>\n\n<h3>Keyboard Shortcuts<\/h3>\n\n<p>Global:<\/p>\n\n<ul>\n<li><strong>Ctrl + \/<\/strong> by default: Focus the Ninoxa Live Search input<\/li>\n<li>Keyboard shortcut can be customized or disabled from the Ninoxa Live Search admin menu<\/li>\n<\/ul>\n\n<p>Type-to-search (opt-in):<\/p>\n\n<ul>\n<li>When enabled in settings, typing <strong>two printable characters in quick succession<\/strong> anywhere on the page (outside inputs, textareas, and contenteditable regions) focuses the search field and inserts the typed text<\/li>\n<li>A lone keypress is ignored, so accidental single-key bumps do not hijack focus<\/li>\n<li>Works alongside the keyboard shortcut above; disabled by default<\/li>\n<li>Inactive on touch-first devices<\/li>\n<\/ul>\n\n<p>Search results:<\/p>\n\n<ul>\n<li><strong>Arrow Up\/Down<\/strong>: Navigate through search results<\/li>\n<li><strong>Enter<\/strong>: Select highlighted result<\/li>\n<li><strong>Escape<\/strong>: Close search results<\/li>\n<li><strong>Tab<\/strong>: Move focus into the matching mode bar (keeps results open)<\/li>\n<\/ul>\n\n<p>Matching mode bar:<\/p>\n\n<ul>\n<li><strong>Arrow Left\/Right<\/strong>: Move between matching modes<\/li>\n<li><strong>Home\/End<\/strong>: Jump to first \/ last mode<\/li>\n<li><strong>Enter \/ Space<\/strong>: Activate the focused mode<\/li>\n<li><strong>Escape<\/strong>: Return focus to the search input<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>ninoxa-live-search<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>The live search will be automatically enabled on your site.<\/li>\n<li>Configure options from the Ninoxa Live Search admin menu.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20support%20multilingual%20sites%3F\"><h3>Does this plugin support multilingual sites?<\/h3><\/dt>\n<dd><p>Yes. It supports both Polylang and WPML.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20support%20both%20classic%20and%20block%20themes%3F\"><h3>Does this plugin support both Classic and Block themes?<\/h3><\/dt>\n<dd><p>Yes. It works out of the box with standard WordPress search forms across all themes.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Added optional type-to-search: typing two characters outside any input focuses the search field and inserts the typed text. Enable it from the General settings tab.<\/li>\n<li>Improved WordPress Playground live preview with a dedicated front page and search block for easier demos.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Added WordPress Playground live preview blueprint so visitors can try the plugin before installing.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Fixed settings checkbox saving so unchecked toggles are correctly stored as off.<\/li>\n<li>Improved keyboard focus behavior so live-search results stay open while tabbing inside the search form and close reliably once focus leaves the search UI.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added result matching modes (All words, Any word, Exact phrase, Whole word, and Fuzzy) powered entirely by the native WordPress and MySQL search engine; fuzzy mode uses edit-distance-1 LIKE patterns so \"helo\" matches \"hello\".<\/li>\n<li>Visitors can switch the matching mode directly from the search field; results refresh instantly.<\/li>\n<li>New \"Matching\" settings tab to enable the controls, choose available modes, and set the default mode.<\/li>\n<li>Redesigned settings UI with card-based layout and dark blue color palette.<\/li>\n<li>Three-tab settings navigation: General, Loading, and About.<\/li>\n<li>CSS toggle switches for spinner and light sweep options.<\/li>\n<li>Collapsible sections for loading indicator sub-settings.<\/li>\n<li>Sticky sidebar with contextual tips on the settings page.<\/li>\n<li>About tab with plugin info.<\/li>\n<li>Configurable number of results setting.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Light sweep loading animation<\/li>\n<li>Loading indicators settings<\/li>\n<li>Loading spinner wasn't display properly, is fixed.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Admin menu and settings for Keyboard shortcut customization.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Fixed text domain to match plugin slug.<\/li>\n<li>Improved input sanitization.<\/li>\n<li>Removed deprecated load_plugin_textdomain() calls.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A plugin to add live search functionality to your WordPress site.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/304655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=304655"}],"author":[{"embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/macse2"}],"wp:attachment":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=304655"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=304655"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=304655"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=304655"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=304655"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=304655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}