是的,这是可能的。
您可以使用WordPress附带的jQuery自动建议http://codex.wordpress.org/Function_Reference/wp_enqueue_script
有了它,您可以编写一个表单,对Ajax URL处理程序执行Ajax查找。您可以在其上添加\\u操作。http://codex.wordpress.org/AJAX_in_Plugins
因此,您可以使用ajax进行查找,然后在操作端只需执行get\\u posts来匹配标题,或者执行原始sql查询。并返回所需的内容。
这应该会有所帮助,如果我很快有时间,我可能会编写一个完整的代码解决方案。但它的大部分是一个完整的插件来帮助查找。
编辑:我们开始吧,像这样的东西应该可以做到,还没有测试过,只是把它记下来了。更新:转义输入的文本,按自定义帖子类型缩小范围,仅限于已发布的帖子
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();
}