Для начала, вам нужно добавить ajax-обработчик в functions.php (но я рекомендовал бы оформить как плагин). Потом, уже в зависимости от того, как вы хотите искать. Можно просто при помощи WP_Query получать нужные данные, а можно получать напрямую из таблиц + возможно какой-нибудь кэширующий уровень. Все это отдается клиенту, и вы просто обновляете информацию в нужном месте.
На клиенте у вас должен быть скрипт, который будет слушать события клавиатуры в нужном вам поле ввода. При каждом таком событии, если предыдущее было 2-3 секунды назад (чтобы предотвратить ненужные и частые срабатывания) шлем запрос на сервер, передавая WP имя вашего ajax-экшена при помощи параметра 'action' в POST или GET.
По умолчанию у WP нет такого функционала (и расширить тоже нельзя), поэтому у вас будет нативный вариант без ajax, и тот, что вы сделаете самостоятельно, как надстройку.
Обработчики ajax-запросов добавляются так:
add_action('wp_ajax_{ajax-action-name}', 'your-function');
Само собой, это должно вызываться в обработчике экшена init (или plugins_loaded).