ใช่มันเป็นไปได้
คุณสามารถใช้ jQuery Auto Suggest ซึ่งมาพร้อมกับ WordPress http://codex.wordpress.org/Function_Reference/wp_enqueue_script
ด้วยวิธีนี้คุณสามารถเขียนแบบฟอร์มที่ค้นหา Ajax ไปยังตัวจัดการ URL ของ Ajax ซึ่งคุณสามารถ add_action ลงบน http://codex.wordpress.org/AJAX_in_Plugins
ดังนั้นคุณสามารถค้นหา ajax จากนั้นไปที่แอ็คชั่นคุณสามารถทำการ get_posts เพื่อจับคู่ชื่อหรือ sql Query และคืนสิ่งที่จำเป็น
สิ่งนี้น่าจะช่วยได้ถ้าฉันมีเวลาไม่นานฉันอาจจะเขียนรหัสเต็ม แต่ส่วนใหญ่เป็นปลั๊กอินทั้งหมดเพื่อช่วยเพิ่มประสิทธิภาพการค้นหา
แก้ไข: เราไปกันแล้วอย่างนี้ควรทำยังไม่ได้ทดสอบแค่เขียนมันออกมาจากหัวของฉัน อัปเดต: ยกเว้นข้อความที่ป้อนป้อนให้แคบลงตามประเภทโพสต์ที่กำหนดเองและเฉพาะโพสต์ที่เผยแพร่เท่านั้น
2012-11-21 แก้ไข: แก้ไขการพิมพ์ผิดในตัวอย่างโค้ด
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();
}