{"id":338848,"date":"2026-07-20T15:10:18","date_gmt":"2026-07-20T15:10:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/askiva-ai-search\/"},"modified":"2026-09-03T13:41:59","modified_gmt":"2026-09-03T13:41:59","slug":"centous-ai-search-with-askiva","status":"publish","type":"plugin","link":"https:\/\/ml.wordpress.org\/plugins\/centous-ai-search-with-askiva\/","author":23142406,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Centous AI Search with Askiva","header_author":"Centous","header_description":"Connect WordPress to the Askiva third-party AI search API for semantic search, content sync, and streamed AI answers.","assets_banners_color":"bdecd8","last_updated":"2026-09-03 13:41:59","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/centousplugins.com\/","header_plugin_uri":"https:\/\/centousplugins.com\/","header_author_uri":"https:\/\/profiles.wordpress.org\/centous\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":161,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"centous","date":"2026-09-03 13:41:59","revision":3679831}},"upgrade_notice":{"1.0.0":"<p>Initial stable release of Centous AI Search with Askiva.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3615450,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3615450,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3679831,"resolution":"1","location":"assets","locale":"","width":1905,"height":930},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3679831,"resolution":"2","location":"assets","locale":"","width":1900,"height":887},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3679831,"resolution":"3","location":"assets","locale":"","width":1902,"height":920},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3679831,"resolution":"4","location":"assets","locale":"","width":1902,"height":910},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3679831,"resolution":"5","location":"assets","locale":"","width":1890,"height":908}},"screenshots":{"1":"Dashboard before connection, with a prompt to connect in Settings","2":"Connected dashboard with site stats, connection status, and shortcode examples","3":"Sync page with progress bar and activity log","4":"Settings page for Site ID, Site Key, and search display options","5":"Frontend search with streamed AI answer and grid results"}},"plugin_section":[],"plugin_tags":[220145,279027,944,140844],"plugin_category":[],"plugin_contributors":[233261],"plugin_business_model":[],"class_list":["post-338848","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-search","plugin_tags-askiva","plugin_tags-search","plugin_tags-semantic-search","plugin_contributors-centous","plugin_committers-centous"],"banners":{"banner":"https:\/\/ps.w.org\/centous-ai-search-with-askiva\/assets\/banner-772x250.png?rev=3615450","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/centous-ai-search-with-askiva\/assets\/icon-256x256.png?rev=3615450","icon_2x":"https:\/\/ps.w.org\/centous-ai-search-with-askiva\/assets\/icon-256x256.png?rev=3615450","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/centous-ai-search-with-askiva\/assets\/screenshot-1.png?rev=3679831","caption":"Dashboard before connection, with a prompt to connect in Settings"},{"src":"https:\/\/ps.w.org\/centous-ai-search-with-askiva\/assets\/screenshot-2.png?rev=3679831","caption":"Connected dashboard with site stats, connection status, and shortcode examples"},{"src":"https:\/\/ps.w.org\/centous-ai-search-with-askiva\/assets\/screenshot-3.png?rev=3679831","caption":"Sync page with progress bar and activity log"},{"src":"https:\/\/ps.w.org\/centous-ai-search-with-askiva\/assets\/screenshot-4.png?rev=3679831","caption":"Settings page for Site ID, Site Key, and search display options"},{"src":"https:\/\/ps.w.org\/centous-ai-search-with-askiva\/assets\/screenshot-5.png?rev=3679831","caption":"Frontend search with streamed AI answer and grid results"}],"raw_content":"<!--section=description-->\n<p>Centous AI Search with Askiva adds AI-powered search to your WordPress site. It indexes published posts and pages, then lets visitors search your content and receive streamed AI answers with matching results.<\/p>\n\n<ul>\n<li><strong>Content indexing<\/strong>: batch sync of published posts and pages to Askiva<\/li>\n<li><strong>AI search<\/strong>: semantic search with streamed AI answers (GFM Markdown)<\/li>\n<li><strong>Rich results<\/strong>: list or grid layout, thumbnails, pagination, and \u201cRead more\u201d links<\/li>\n<li><strong>Query help<\/strong>: \u201cDid you mean\u201d suggestions when the API detects typos<\/li>\n<li><strong>Admin tools<\/strong>: connection settings, sync dashboard, statistics, and logs<\/li>\n<\/ul>\n\n<p>The frontend search box uses AJAX by default: results and the AI answer load inline without a full page reload. Server-rendered results are still supported when a search URL contains a query parameter.<\/p>\n\n<p>Full setup and usage guides: <a href=\"https:\/\/docs.centousplugins.com\/centous-ai-search-with-askiva\">Centous AI Search with Askiva documentation<\/a>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to third-party Askiva services. An Askiva account is required.<\/p>\n\n<h4>Askiva account portal<\/h4>\n\n<p>Website: <a href=\"https:\/\/askivasearch.com\/\">https:\/\/askivasearch.com\/<\/a><\/p>\n\n<p>Used to register an account, add your WordPress site, and obtain your <strong>Site Identifier<\/strong> and <strong>API Key<\/strong>.<\/p>\n\n<h4>Askiva API<\/h4>\n\n<p>API Used to verify your connection, sync published WordPress content, run search queries, stream AI answers, and load dashboard statistics.<\/p>\n\n<p>Data sent from your WordPress site to the API:<\/p>\n\n<ul>\n<li><strong>On connect (Verify Key):<\/strong> Site Identifier and API Key<\/li>\n<li><strong>On sync:<\/strong> published post\/page title, URL, slug, excerpt, plain-text content, headings, categories, and tags<\/li>\n<li><strong>On search:<\/strong> search query, Site Identifier, API Key, pagination, and optional content type filter<\/li>\n<li><strong>On dashboard stats:<\/strong> Site Identifier and API Key<\/li>\n<\/ul>\n\n<p>Data is sent only when you or a visitor triggers these actions (connect, sync, search, or when an administrator views the dashboard).<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.8+<\/li>\n<li>PHP 7.4+<\/li>\n<li>Valid Askiva account (Site Identifier and API Key from the <a href=\"https:\/\/askivasearch.com\/\">Askiva dashboard<\/a>)<\/li>\n<li>Outbound HTTPS to the Askiva API host<\/li>\n<li>Published content to index (drafts are skipped)<\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Secure admin AJAX with nonces and <code>manage_options<\/code> checks<\/li>\n<li>Site ID + Site Key connection with verify endpoint<\/li>\n<li>Batch content sync with pause, resume, and restart<\/li>\n<li>Real-time sync status and error logging<\/li>\n<li>Streaming AI answers with GFM Markdown rendering<\/li>\n<li>\u201cDid you mean\u201d typo suggestions from the API<\/li>\n<li>List and grid result layouts with configurable thumbnails<\/li>\n<li>Search popup shortcode for header and navigation use<\/li>\n<li>Server-rendered and AJAX search modes<\/li>\n<li>Theme template overrides<\/li>\n<li>WordPress REST sync endpoints for automation<\/li>\n<li>Cached dashboard statistics<\/li>\n<li>First-run redirect to settings<\/li>\n<li>Clean uninstall support<\/li>\n<\/ul>\n\n<h3>Configuration<\/h3>\n\n<h4>Create your Askiva account and site<\/h4>\n\n<ol>\n<li>Register and log in at <a href=\"https:\/\/askivasearch.com\/\">Askiva<\/a><\/li>\n<li>In the dashboard sidebar, click <strong>Sites<\/strong><\/li>\n<li>On the Sites page, click <strong>Add Site<\/strong><\/li>\n<li>In the popup, enter your website details and click <strong>Add Site<\/strong><\/li>\n<li>Your site appears in the list: click it to open the site detail page<\/li>\n<li>On the detail page, copy your <strong>Site Identifier<\/strong> and <strong>API Key<\/strong> (you will enter these in the WordPress plugin)<\/li>\n<\/ol>\n\n<h4>Connect your site<\/h4>\n\n<ol>\n<li>Open <strong>Centous Search \u2192 Settings<\/strong> in WordPress admin<\/li>\n<li>Enter your <strong>Site ID<\/strong> (the <strong>Site Identifier<\/strong> from the Askiva portal, e.g. <code>my-site-aBc12XyZ<\/code>)<\/li>\n<li>Enter your <strong>Site Key<\/strong> (the <strong>API Key<\/strong> from the Askiva portal)<\/li>\n<li>Click <strong>Verify Key<\/strong>: the plugin calls <code>POST \/wp\/verify<\/code> to validate credentials<\/li>\n<li>When connected, Site ID and Site Key fields are locked until you disconnect<\/li>\n<\/ol>\n\n<p>Saved settings also include numeric <code>api_site_id<\/code> when the verify response returns one (used for search API compatibility).<\/p>\n\n<h4>Sync your content<\/h4>\n\n<p>After a successful connection:<\/p>\n\n<ol>\n<li>Go to <strong>Centous Search \u2192 Sync<\/strong><\/li>\n<li>Click <strong>Start Sync<\/strong> to index your published WordPress content to Askiva<\/li>\n<li>Wait for the sync to complete (monitor progress and logs on the Sync page)<\/li>\n<\/ol>\n\n<p>When sync finishes, your site content is available for AI search.<\/p>\n\n<h4>Enable search on your site<\/h4>\n\n<p>Add the search shortcode to any page or post: <code>[askiva_search]<\/code><\/p>\n\n<p>Visitors can search your site and see streamed AI answers with semantic results. See <strong>Usage<\/strong> below for shortcode options and layout settings.<\/p>\n\n<h4>Search and display settings<\/h4>\n\n<p>Under <strong>Centous Search \u2192 Settings<\/strong>:<\/p>\n\n<ul>\n<li><strong>Content Items per Index Cycle<\/strong>: posts\/pages sent per sync batch (default: 10)<\/li>\n<li><strong>Results Display Mode<\/strong>: <code>list<\/code> or <code>grid<\/code> for search results (default: list)<\/li>\n<li><strong>Results per Page<\/strong>: results shown per page, 1\u2013100 (default: 10)<\/li>\n<li><strong>Thumbnail Size<\/strong>: result thumbnail size in px, 48\u2013400 (default: 96)<\/li>\n<\/ul>\n\n<h3>Usage<\/h3>\n\n<h4>Search shortcode<\/h4>\n\n<p>Place <code>[askiva_search]<\/code> on any page, post, or widget area. Visitors search inline; the AI answer streams in and results appear below the form.<\/p>\n\n<p>Common setup:<\/p>\n\n<ol>\n<li>Create a page (for example <code>\/search\/<\/code>) with <code>[askiva_search show_results=\"1\"]<\/code><\/li>\n<li>For a header or sidebar button that redirects to your search page, use <code>[askiva_search_popup results_url=\"\/search\/\" trigger_text=\"Search\"]<\/code><\/li>\n<li><p>Optionally set a global results URL for the popup shortcode:<\/p>\n\n<p>add_filter( 'askiva_search_results_url', function () {\n    return site_url( '\/search\/' );\n} );<\/p><\/li>\n<\/ol>\n\n<p>Note: <code>[askiva_search show_results=\"0\"]<\/code> hides pre-loaded results on page load, but search still runs inline on that page via JavaScript. Use the popup shortcode to redirect visitors to a separate search page.<\/p>\n\n<h4>Shortcode attributes<\/h4>\n\n<ul>\n<li><code>placeholder<\/code> (string, default: Search\u2026): input placeholder<\/li>\n<li><code>button_text<\/code> (string, default: Search): button label (legacy)<\/li>\n<li><code>site_id<\/code> (string, default: from settings): override site ID; saved settings always win when set<\/li>\n<li><code>type<\/code> (string, default: empty): optional content type filter sent to the API<\/li>\n<li><code>results_url<\/code> (string, default: auto): full URL or path for the search results page<\/li>\n<li><code>results_page_id<\/code> (int, default: none): WordPress page ID for results (alternative to <code>results_url<\/code>)<\/li>\n<li><code>show_results<\/code> (<code>auto<\/code>, <code>0<\/code>, or <code>1<\/code>; default: <code>auto<\/code>): <code>auto<\/code> shows results when a query is present; <code>1<\/code> enables results; <code>0<\/code> hides pre-loaded results<\/li>\n<li><code>results_limit<\/code> (int, default: from settings): results per page (1\u2013100)<\/li>\n<li><code>view_all_limit<\/code> (int, default: 50): max results when \u201cview all\u201d is used<\/li>\n<li><code>ajax<\/code> (<code>0<\/code> or <code>1<\/code>; default: <code>0<\/code>): force AJAX rendering (legacy widget behavior)<\/li>\n<li><code>live<\/code> (bool, default: false): search while typing (debounced)<\/li>\n<li><code>min_chars<\/code> (int, default: 2): minimum characters before search runs<\/li>\n<li><code>debug<\/code> (<code>0<\/code> or <code>1<\/code>; default: <code>0<\/code>): include API trace\/debug data<\/li>\n<li><code>limit<\/code> (int, default: 10): legacy AJAX limit<\/li>\n<\/ul>\n\n<h4>URL query parameters<\/h4>\n\n<ul>\n<li>Search query: default name <code>q<\/code> (legacy alias <code>askiva_q<\/code> is still supported)<\/li>\n<li>Page: default name <code>askiva_page<\/code> (pagination)<\/li>\n<li>View all: default name <code>view<\/code> (use <code>view=all<\/code> for the expanded result limit)<\/li>\n<\/ul>\n\n<h4>Popup search shortcode<\/h4>\n\n<p>Opens a modal search box and redirects to your results page on submit: <code>[askiva_search_popup results_url=\"\/search\/\" trigger_text=\"Search\"]<\/code><\/p>\n\n<ul>\n<li><code>trigger_text<\/code> (default: Search): button that opens the popup<\/li>\n<li><code>placeholder<\/code> (default: Search\u2026): input placeholder<\/li>\n<li><code>close_text<\/code> (default: Close): close button label<\/li>\n<li><code>results_url<\/code> (default: auto): where to send the user after search<\/li>\n<li><code>results_page_id<\/code> (default: none): page ID alternative to <code>results_url<\/code><\/li>\n<li><code>min_chars<\/code> (default: 2): minimum query length<\/li>\n<\/ul>\n\n<h3>Support<\/h3>\n\n<p>Documentation: <a href=\"https:\/\/docs.centousplugins.com\/centous-ai-search-with-askiva\">https:\/\/docs.centousplugins.com\/centous-ai-search-with-askiva<\/a><\/p>\n\n<p>Plugin support: <a href=\"https:\/\/centousplugins.com\/\">Centous<\/a>, developer of this plugin.<\/p>\n\n<p>Askiva (third-party service): account setup at <a href=\"https:\/\/askivasearch.com\/\">Askiva<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>centous-ai-search-with-askiva<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through <strong>Plugins<\/strong> in WordPress admin<\/li>\n<li>Register on Askiva, add your site, and copy your credentials (see Configuration)<\/li>\n<li>Go to <strong>Centous Search \u2192 Settings<\/strong> in WordPress and connect your site<\/li>\n<li>Run an initial sync from <strong>Centous Search \u2192 Sync<\/strong><\/li>\n<li>Add the <code>[askiva_search]<\/code> shortcode to a page or post<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20all%20themes%3F\"><h3>Does this work with all themes?<\/h3><\/dt>\n<dd><p>Yes. The plugin ships self-contained CSS. Themes with aggressive list resets are handled via scoped styles for AI answer lists.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20askiva%20account%3F\"><h3>Do I need an Askiva account?<\/h3><\/dt>\n<dd><p>Yes. This plugin uses <a href=\"https:\/\/askivasearch.com\/\">Askiva<\/a> as a third-party API service. Register at the <a href=\"https:\/\/askivasearch.com\/\">Askiva dashboard<\/a>, add your site, and copy the <strong>Site Identifier<\/strong> and <strong>API Key<\/strong> into the plugin settings.<\/p><\/dd>\n<dt id=\"can%20i%20re-sync%20all%20content%3F\"><h3>Can I re-sync all content?<\/h3><\/dt>\n<dd><p>Yes. Use <strong>Start Sync<\/strong> with \u201cDelete all data and start fresh sync\u201d on the Sync page, or the restart REST endpoint.<\/p><\/dd>\n<dt id=\"does%20search%20work%20without%20javascript%3F\"><h3>Does search work without JavaScript?<\/h3><\/dt>\n<dd><p>Partially. With <code>show_results=\"1\"<\/code> and a query in the URL, PHP can render results server-side. The streaming AI answer requires JavaScript.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20search%20url%20parameter%3F\"><h3>Can I change the search URL parameter?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>askiva_search_query_param<\/code> filter (default: <code>q<\/code>).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Connect with Site ID and Site Key, then sync published content<\/li>\n<li>Search shortcode with streamed AI answers and semantic results<\/li>\n<li>Popup shortcode, dashboard stats, and sync pause\/resume\/restart<\/li>\n<\/ul>","raw_excerpt":"Connect WordPress to Askiva for content sync, semantic search, and streamed AI answers.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/338848","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=338848"}],"author":[{"embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/centous"}],"wp:attachment":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=338848"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=338848"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=338848"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=338848"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=338848"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=338848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}