Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress帖子搜索与jquery ajax自动完成_Wordpress - Fatal编程技术网

Wordpress帖子搜索与jquery ajax自动完成

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',

我正在使用Jquery自动完成WordPress自定义帖子类型搜索。一切都很好,但我需要把搜索结果的链接。因此,当有人选择结果页时,结果页将重定向。任何人都可以帮助我如何把链接。这是我的PHP代码

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' );