javascript - 如何在搜索结果上添加标签?
问题描述
如何在搜索结果上添加标签?请查看图片以供参考我只想将两个结果与特定标题分开我该如何实现?
<script>
/* globals global */
jQuery(function($) {
var searchRequest;
$('.search-autocomplete').autoComplete({
minChars: 2,
source: function(term, suggest) {
try {
searchRequest.abort();
} catch (e) {}
searchRequest = $.getJSON(global.ajax, {
q: term,
action: 'search_site'
}, function(res) {
//console.log(res.data);
var suggestions = [];
res.data.forEach(x => {
console.log(x);
if (~x.post_title.toLowerCase().indexOf(term)) {
suggestions.push(x.post_title);
} else if (~x.post_status.toLowerCase().indexOf(term)) {
suggestions.push(x.post_title);
}
suggest(suggestions);
});
// for (i=0;i<res.data.length;i++)
// if (~res.data.post_title[i].toLowerCase().indexOf(term)) suggestions.push(res.data.post_title[i]);
// suggest(suggestions);
});
}
});
});
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-autocomplete/1.0.7/jquery.auto-complete.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jquery-autocomplete/1.0.7/jquery.auto-complete.css" rel="stylesheet"/>
<form role="search" method="get" id="searchform" action="http://localhost/gigant-live/">
<div>
<label class="screen-reader-text" for="s">Search for:</label>
<input type="text" autocomplete="off" value="" name="s" class="form-control search-autocomplete" id="s" placeholder="My Search form" />
<input type="submit" id="searchsubmit" value="Search" />
<input type="hidden" name="post_type" value="product" />
</div>
</form>
解决方案
function ja_ajax_search() {
$results = new WP_Query( array(
'post_type' => array( 'product','product-tag' ,'post_author'),
'post_status' => 'publish',
'nopaging' => true,
'posts_per_page'=> 100,
's' => stripslashes( $_POST['search'] ),
) );
$items = array();
// print_r($results);
if ( !empty( $results->posts ) ) {
foreach ( $results->posts as $result) {
// $services = [$result ];
$post_details = [
'post_id' => $result->ID,
'post_author' => $result->post_author,
'post_title' => $result->post_title,
'post_status' => $result->post_status,
'post_slug' => $result->post_name
];
array_push($items, $post_details);
// $items[] .= $services;
// echo $result->post_title;
}
}
// print_r($items);
// print_r($items);
// print_r($items);
// if ( !empty( $results->posts ) ) {
// foreach ( $results->posts as $result ) {
// $items[] = $result->post_status;
// }
// }
wp_send_json_success( $items );
}
add_action( 'wp_ajax_search_site', 'ja_ajax_search' );
add_action( 'wp_ajax_nopriv_search_site', 'ja_ajax_search' );
推荐阅读
- ruby-on-rails - 没有路线匹配 [PATCH] "/blog_posts/id/1/hide"
- jquery - 在滚动期间触发另一个动画旁边的动画
- javascript - 反应可排序表不排序
- c++ - OpenMP - 在循环中使用并行调用函数,使用 Mat 对象
- mobile - Barkod 扫描仪系统
- javascript - 不可变的 js Map() - 不理解 take() 和 skip()
- android - 如何通过 Dialog-Activity Communication 检索图像或“imagePath”?
- javascript - 在函数之前使用 setTimeout 循环完成子函数
- system-verilog - 当时将一个数组分配给一个 32 位的向量
- excel - Excel,数据透视表,减去而不是使用“差异”