/* ========================================================= LIVE SEARCH – enqueue ========================================================= */ add_action('wp_enqueue_scripts', function () { wp_enqueue_script( 'live-search', get_stylesheet_directory_uri() . '/assets/live-search.js', ['jquery'], null, true ); wp_enqueue_style( 'live-search', get_stylesheet_directory_uri() . '/assets/live-search.css', [], null ); wp_localize_script('live-search', 'liveSearch', [ 'ajax_url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('live_search_nonce'), ]); }); /* ========================================================= LIVE SEARCH – AJAX - fundal negru - DOAR imagine + titlu - titluri care ÎNCEP cu textul introdus ========================================================= */ add_action('wp_ajax_live_search', 'child_live_search'); add_action('wp_ajax_nopriv_live_search', 'child_live_search'); function child_live_search() { check_ajax_referer('live_search_nonce', 'nonce'); $query = isset($_POST['query']) ? sanitize_text_field($_POST['query']) : ''; if (mb_strlen($query) < 2) { wp_die(); } global $wpdb; // prefix search: titlul începe cu query-ul $title_filter = function ($where) use ($wpdb, $query) { $like = $wpdb->esc_like($query) . '%'; $where .= $wpdb->prepare( " AND {$wpdb->posts}.post_title LIKE %s", $like ); return $where; }; add_filter('posts_where', $title_filter); $q = new WP_Query([ 'post_type' => ['post'], 'post_status' => 'publish', 'posts_per_page' => 12, 'orderby' => 'title', 'order' => 'ASC', 'ignore_sticky_posts' => true, 'no_found_rows' => true, 's' => '', ]); remove_filter('posts_where', $title_filter); if ($q->have_posts()) { echo ''; wp_reset_postdata(); } else { echo '
Niciun rezultat
'; } wp_die(); } Next Star ‣ Cantece pentru copii