Wordpress表单中的自动完成/建议

时间:2014-07-21 11:16:32

标签: wordpress autocomplete wordpress-plugin

我在我的主页上放置了一个包含6个字段的搜索表单,其中包含一个名为course的文本框字段。我想在用户输入时显示课程建议。还有一个是,我想根据第一个字段下拉选项显示/隐藏一些字段。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以使用WordPress附带的jQuery Auto Suggest:wp_enqueue_script

通过这种方式,您可以编写一个表单,对Ajax URL处理程序执行Ajax查找。哪个你可以add_action到。 AJAX in Plugins

因此,您可以进行ajax查找,然后在操作方面,您可以执行get_posts以匹配标题或原始SQL查询。并返回所需的东西。编辑你的functions.php。

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();
}

答案 1 :(得分:-1)

两者都使用ajax。您可能必须编写一些mysql查询来从表中检索必需的字段(发布标题或其他任何内容)。