2016-10-10 4 views
1

私はワードプレスでオートコンプリートを追加するのに成功していませんでした。私のfunctions.phpでWordpressとjqueryオートコンプリートのメタキー

:私のautocomplete.jsで

// Loads files with autocomplete 
wp_register_script('jquery-ui', get_template_directory_uri() . '/js/jquery-ui.min.js', array('jquery')); 
wp_enqueue_script('jquery-ui'); 
wp_register_style('jquery-style', get_template_directory_uri() . '/js/jquery-ui.css'); 
wp_enqueue_style('jquery-style'); 
wp_register_script('autocomplete-ui', get_template_directory_uri() . '/js/autocomplete.js', array('jquery')); 
wp_localize_script('autocomplete-ui', 'autocomplete-object', array('url' => admin_url('admin-ajax.php'))); 
wp_enqueue_script('autocomplete-ui'); 

戻る私のfunctions.phpで
function ($) { 
    'use strict'; 

$(function() { 

$("#busca").autocomplete({ 
    source: function(request, response) { 
    $.ajax({ 
     type: 'GET', 
     dataType: "json", 
     data: { 
      action: "autocompleteCallback", 
      term: request.term 
      }, 
     success: function (data) { 

      }, }); } }); }); }(jQuery); 

function acCallback() { 
    global $wpdb; 
    $search = $_REQUEST['term']; 
    $query = $wpdb->get_results("SELECT $wpdb->postmeta.meta_value FROM $wpdb->postmeta WHERE postmeta.meta_value LIKE \'' . $search . '%\' AND post_type = \'NAME OF CUSTOM POST TITLE \' 
AND $wpdb->postmeta.meta_key = 'produto'"); 

    $tab = array(); 
    foreach ($query->posts as $p): 
    $tab[] =array('value'=>$p->postmeta.meta_value); 
     endforeach; 

      echo(json_encode($tab)); 
      exit; 
} 

add_action('wp_ajax_autocompleteCallback', 'acCallback'); 
add_action('wp_ajax_nopriv_autocompleteCallback', 'acCallback'); 

何が私のオートコンプリートで表示されません...私の間違いは何ですか?助けてくれてありがとう

+0

、どこでAJAX URLは?私はAJAXに何を呼び出すべきかを伝える必要があると思います。 –

+0

私はそれをしなかったが、それでも動作しない: – Tatiana

+0

$( "#busca").autocomplete({ \tソース:機能(リクエスト、レスポンス){ \t $アヤックス({ \t \t URL:オートコンプリート-object.ajax_url、 – Tatiana

答えて

0

私はそれを手に入れました!私はいくつかの変更をしなければならなかったが、主なものは以下のとおりであった:私のautocomplete.js

.... 
success: function (data) { 
    response($.map(data, function(item) { 
    return { 
    value: item.meta_value, 
    id :item.meta_id 
    }; 
    })); 
    }; 

そして、私のfunctions.phpのIn

global $wpdb; 
    $search = $_GET['term']; 
    $query = $wpdb->get_results("SELECT DISTINCT meta_id, meta_value FROM wp_postmeta WHERE meta_key='NAME OF META KEY' AND meta_value LIKE '".$search."%' "); 


$suggestions = array(); 
foreach($query as $row) { 
    array_push($suggestions, array(
      'meta_value' => $row->meta_value, 
      'meta_id' => $row->meta_id 
     ) 
    ); 
} 
echo json_encode($suggestions); 
exit(); 
関連する問題