admin_url('admin-ajax.php'), 'no_results_text' => esc_js(get_option('ajax_searchwp_no_results_text', __('No results found', 'ajax-searchwp'))), 'ajax_nonce' => wp_create_nonce('ajax_searchwp_nonce') )); } } public function ajax_searchwp_handle_search() { if (!isset($_POST['nonce']) || !wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['nonce'])), 'ajax_searchwp_nonce')) { wp_send_json_error(array('message' => __('Nonce verification failed', 'ajax-searchwp')), 403); wp_die(); } $query = isset($_POST['query']) ? sanitize_text_field(wp_unslash($_POST['query'])) : ''; $post_types = get_option('ajax_searchwp_post_types', array('post')); $limit = absint(get_option('ajax_searchwp_limit', 5)); if (!is_array($post_types)) { $post_types = array('post'); } $args = array( 's' => $query, 'post_type' => array_map('sanitize_key', $post_types), 'posts_per_page' => $limit, ); $search_query = new WP_Query($args); $results = array(); if ($search_query->have_posts()) { while ($search_query->have_posts()) { $search_query->the_post(); $results[] = array( 'title' => esc_html(get_the_title()), 'url' => esc_url(get_permalink()), ); } } wp_send_json_success($results); wp_die(); } public function ajax_searchwp_search_form_shortcode() { ob_start(); $search_placeholder = get_option('ajax_searchwp_search_placeholder', __('Search here...', 'ajax-searchwp')); ?>