From 68831a5330540615ad8e63cf0764d3b4c44cf379 Mon Sep 17 00:00:00 2001 From: "Kevinleary.net" Date: Mon, 13 Oct 2025 17:37:47 -0400 Subject: [PATCH 1/5] wp_ajax_nopriv_menu_quick_search --- src/wp-admin/includes/ajax-actions.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/wp-admin/includes/ajax-actions.php b/src/wp-admin/includes/ajax-actions.php index 1df84f204ecb8..9b45178253e7f 100644 --- a/src/wp-admin/includes/ajax-actions.php +++ b/src/wp-admin/includes/ajax-actions.php @@ -11,6 +11,29 @@ // No-privilege Ajax handlers. // +/** + * Filters menu quick search to only search post titles. + * + * Modifies the search query for the menu quick search AJAX action + * to search only in post_title column for a better UX + */ +function wp_ajax_nopriv_menu_quick_search($args) { + if (isset($_POST['action']) && $_POST['action'] === 'menu-quick-search') { + add_filter('posts_search', function ($search, $query) { + global $wpdb; + + if (!empty($search) && isset($query->query_vars['s'])) { + $search = $wpdb->prepare(" AND {$wpdb->posts}.post_title LIKE %s ", '%' . $wpdb->esc_like($query->query_vars['s']) . '%'); + } + + return $search; + }, 10, 2); + } + + return $args; +} +add_action('wp_ajax_menu-quick-search', 'wp_ajax_nopriv_menu_quick_search'); + /** * Handles the Heartbeat API in the no-privilege context via AJAX . * From 21d44d2e92cf852af50ddb0b251a311b98b59933 Mon Sep 17 00:00:00 2001 From: "Kevinleary.net" Date: Mon, 13 Oct 2025 17:39:13 -0400 Subject: [PATCH 2/5] tabs --- src/wp-admin/includes/ajax-actions.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/wp-admin/includes/ajax-actions.php b/src/wp-admin/includes/ajax-actions.php index 9b45178253e7f..1845175d189c8 100644 --- a/src/wp-admin/includes/ajax-actions.php +++ b/src/wp-admin/includes/ajax-actions.php @@ -18,19 +18,19 @@ * to search only in post_title column for a better UX */ function wp_ajax_nopriv_menu_quick_search($args) { - if (isset($_POST['action']) && $_POST['action'] === 'menu-quick-search') { - add_filter('posts_search', function ($search, $query) { - global $wpdb; + if (isset($_POST['action']) && $_POST['action'] === 'menu-quick-search') { + add_filter('posts_search', function ($search, $query) { + global $wpdb; - if (!empty($search) && isset($query->query_vars['s'])) { - $search = $wpdb->prepare(" AND {$wpdb->posts}.post_title LIKE %s ", '%' . $wpdb->esc_like($query->query_vars['s']) . '%'); - } + if (!empty($search) && isset($query->query_vars['s'])) { + $search = $wpdb->prepare(" AND {$wpdb->posts}.post_title LIKE %s ", '%' . $wpdb->esc_like($query->query_vars['s']) . '%'); + } - return $search; - }, 10, 2); - } + return $search; + }, 10, 2); + } - return $args; + return $args; } add_action('wp_ajax_menu-quick-search', 'wp_ajax_nopriv_menu_quick_search'); From d3390ad9e93690f56bec9097eb8150ce09e580ea Mon Sep 17 00:00:00 2001 From: "Kevinleary.net" Date: Mon, 13 Oct 2025 17:57:20 -0400 Subject: [PATCH 3/5] coding standards --- src/wp-admin/includes/ajax-actions.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/wp-admin/includes/ajax-actions.php b/src/wp-admin/includes/ajax-actions.php index 1845175d189c8..a0cf6d982bca4 100644 --- a/src/wp-admin/includes/ajax-actions.php +++ b/src/wp-admin/includes/ajax-actions.php @@ -17,22 +17,22 @@ * Modifies the search query for the menu quick search AJAX action * to search only in post_title column for a better UX */ -function wp_ajax_nopriv_menu_quick_search($args) { - if (isset($_POST['action']) && $_POST['action'] === 'menu-quick-search') { - add_filter('posts_search', function ($search, $query) { +function wp_ajax_nopriv_menu_quick_search( $args ) { + if ( isset( $_POST['action'] ) && $_POST['action'] === 'menu-quick-search' ) { + add_filter( 'posts_search', function ( $search, $query ) { global $wpdb; - if (!empty($search) && isset($query->query_vars['s'])) { - $search = $wpdb->prepare(" AND {$wpdb->posts}.post_title LIKE %s ", '%' . $wpdb->esc_like($query->query_vars['s']) . '%'); + if ( ! empty( $search ) && isset( $query->query_vars['s'] ) ) { + $search = $wpdb->prepare( " AND {$wpdb->posts}.post_title LIKE %s ", '%' . $wpdb->esc_like( $query->query_vars['s'] ) . '%' ); } return $search; - }, 10, 2); + }, 10, 2 ); } return $args; } -add_action('wp_ajax_menu-quick-search', 'wp_ajax_nopriv_menu_quick_search'); +add_action( 'wp_ajax_menu-quick-search', 'wp_ajax_nopriv_menu_quick_search' ); /** * Handles the Heartbeat API in the no-privilege context via AJAX . From 452d8a4efd5131925c97af540a64e196e94d2323 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Thu, 16 Oct 2025 16:02:21 -0500 Subject: [PATCH 4/5] Coding standards --- src/wp-admin/includes/ajax-actions.php | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/wp-admin/includes/ajax-actions.php b/src/wp-admin/includes/ajax-actions.php index a0cf6d982bca4..d8c447c6a9d50 100644 --- a/src/wp-admin/includes/ajax-actions.php +++ b/src/wp-admin/includes/ajax-actions.php @@ -18,16 +18,21 @@ * to search only in post_title column for a better UX */ function wp_ajax_nopriv_menu_quick_search( $args ) { - if ( isset( $_POST['action'] ) && $_POST['action'] === 'menu-quick-search' ) { - add_filter( 'posts_search', function ( $search, $query ) { - global $wpdb; - - if ( ! empty( $search ) && isset( $query->query_vars['s'] ) ) { - $search = $wpdb->prepare( " AND {$wpdb->posts}.post_title LIKE %s ", '%' . $wpdb->esc_like( $query->query_vars['s'] ) . '%' ); - } + if ( isset( $_POST['action'] ) && 'menu-quick-search' === $_POST['action'] ) { + add_filter( + 'posts_search', + function( $search, $query ) { + global $wpdb; + + if ( ! empty( $search ) && isset( $query->query_vars['s'] ) ) { + $search = $wpdb->prepare( " AND {$wpdb->posts}.post_title LIKE %s ", '%' . $wpdb->esc_like( $query->query_vars['s'] ) . '%' ); + } - return $search; - }, 10, 2 ); + return $search; + }, + 10, + 2 + ); } return $args; From 6304afb75ef64cb1e02436020e54806a13e0e2c2 Mon Sep 17 00:00:00 2001 From: Joe Dolson Date: Thu, 16 Oct 2025 16:20:43 -0500 Subject: [PATCH 5/5] Update ajax-actions.php --- src/wp-admin/includes/ajax-actions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wp-admin/includes/ajax-actions.php b/src/wp-admin/includes/ajax-actions.php index d8c447c6a9d50..1447a6daeca6a 100644 --- a/src/wp-admin/includes/ajax-actions.php +++ b/src/wp-admin/includes/ajax-actions.php @@ -21,7 +21,7 @@ function wp_ajax_nopriv_menu_quick_search( $args ) { if ( isset( $_POST['action'] ) && 'menu-quick-search' === $_POST['action'] ) { add_filter( 'posts_search', - function( $search, $query ) { + function ( $search, $query ) { global $wpdb; if ( ! empty( $search ) && isset( $query->query_vars['s'] ) ) {