Wordpress帖子搜索与jquery ajax自动完成
我正在使用Jquery自动完成WordPress自定义帖子类型搜索。一切都很好,但我需要把搜索结果的链接。因此,当有人选择结果页时,结果页将重定向。任何人都可以帮助我如何把链接。这是我的PHP代码Wordpress帖子搜索与jquery ajax自动完成,wordpress,Wordpress,我正在使用Jquery自动完成WordPress自定义帖子类型搜索。一切都很好,但我需要把搜索结果的链接。因此,当有人选择结果页时,结果页将重定向。任何人都可以帮助我如何把链接。这是我的PHP代码 function ja_ajax_search() { $results = new WP_Query( array( 'post_type' => array( 'knowledge_base' ), 'post_status' => 'publish',
function ja_ajax_search() {
$results = new WP_Query( array(
'post_type' => array( 'knowledge_base' ),
'post_status' => 'publish',
'nopaging' => true,
'posts_per_page'=> 100,
's' => stripslashes( $_POST['search'] ),
) );
$items = array();
if ( !empty( $results->posts ) ) {
foreach ( $results->posts as $result ) {
$item = array();
$item['title'] = $result->post_title;
$item['link'] = get_the_permalink($result->ID);
$items[] = $item;
}
}
wp_send_json_success( $items );
}
add_action( 'wp_ajax_search_site','ja_ajax_search' );
add_action( 'wp_ajax_nopriv_search_site', 'ja_ajax_search' );
这是我的jquery代码
jQuery(function($){
var searchRequest;
$('.search-autocomplete').autoComplete({
minChars: 2,
autoFocus: true,
source: function(term, suggest){
try { searchRequest.abort(); } catch(e){}
searchRequest = $.post(global.ajax, { search: term, action: 'search_site' }, function(res) {
suggest(res.data);
});
}
});
});
你可以那样做。把它换成你的
jQuery(function($){
var searchRequest;
$('.search-autocomplete').autoComplete({
minChars: 2,
autoFocus: true,
source: function(name, suggest){
try { searchRequest.abort(); } catch(e){}
searchRequest = $.post(global.ajax, { search: name, action: 'search_site' }, function(data) {
var results = [];
for (var index = 0; index < data.results.length; index++)
if (~(data.results[index]['title']+' '+data.results[index]['link']).toLowerCase().indexOf(name)) results.push(data.results[index]);
suggest(results);
});
},
renderItem: function (item, search){
search = search.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
var re = new RegExp("(" + search.split(' ').join('|') + ")", "gi");
return '<div class="autocomplete-suggestion" data-title="'+item['title']+'" data-link="'+item['link']+'" data-val="'+search+'">'+ item['title'].replace(re, "<b>$1</b>") + '</div>';
},
onSelect: function(e, term, item) {
var link = item.data('link');
window.open(link);
}
});
});
我没有测试过,但请告诉我测试结果,以便在测试不起作用时我可以帮助您。评论不用于进一步讨论;这段对话已经结束。
function ja_ajax_search() {
$results = new WP_Query( array(
'post_type' => array( 'knowledge_base' ),
'post_status' => 'publish',
'nopaging' => true,
'posts_per_page'=> 100,
's' => stripslashes( $_POST['search'] ),
) );
$items = array();
if ( !empty( $results->posts ) ) {
foreach ( $results->posts as $result ) {
$item = array();
$item['title'] = $result->post_title;
$item['link'] = get_the_permalink($result->ID);
$items[] = $item;
}
}
echo json_encode(array('results'=>$items));
die();
}
add_action( 'wp_ajax_search_site','ja_ajax_search' );
add_action( 'wp_ajax_nopriv_search_site', 'ja_ajax_search' );