Sí, esto es posible.
Puede usar jQuery Auto Suggest que se incluye con WordPress enlace
Con esto, puede escribir un formulario que realice una búsqueda de Ajax en el controlador de URL de Ajax.
A la que puedes agregar acción. enlace
Por lo tanto, puede realizar una búsqueda ajax y luego, en el lado de la acción, solo puede realizar un get_posts para hacer coincidir los títulos, o una consulta de sql sin formato. Y devolver lo que se necesita.
Eso debería ayudar, si tengo tiempo dentro de poco podría escribir una solución de código completo.
Pero la mayor parte es un complemento completo para ayudar a impulsar la búsqueda.
Edit: Aquí vamos, algo como esto debería hacerlo, no lo he probado, simplemente lo escribí de la cabeza.
Actualización: Escape el texto introducido, restringido por tipo de publicación personalizada y solo a publicaciones publicadas
2012-11-21 Edit: tipografía actualizada en el ejemplo de código.
add_action('wp_enqueue_scripts', 'se_wp_enqueue_scripts');
function se_wp_enqueue_scripts() {
wp_enqueue_script('suggest');
}
add_action('wp_head', 'se_wp_head');
function se_wp_head() {
?>
<script type="text/javascript">
var se_ajax_url = '<?php echo admin_url('admin-ajax.php'); ?>';
jQuery(document).ready(function() {
jQuery('#se_search_element_id').suggest(se_ajax_url + '?action=se_lookup');
});
</script>
<?php
}
add_action('wp_ajax_se_lookup', 'se_lookup');
add_action('wp_ajax_nopriv_se_lookup', 'se_lookup');
function se_lookup() {
global $wpdb;
$search = like_escape($_REQUEST['q']);
$query = 'SELECT ID,post_title FROM ' . $wpdb->posts . '
WHERE post_title LIKE \'' . $search . '%\'
AND post_type = \'post_type_name\'
AND post_status = \'publish\'
ORDER BY post_title ASC';
foreach ($wpdb->get_results($query) as $row) {
$post_title = $row->post_title;
$id = $row->ID;
$meta = get_post_meta($id, 'YOUR_METANAME', TRUE);
echo $post_title . ' (' . $meta . ')' . "\n";
}
die();
}