首页 > 解决方案 > 如何在搜索结果上添加标签?

问题描述

如何在搜索结果上添加标签?请查看图片以供参考我只想将两个结果与特定标题分开我该如何实现?

这是我的代码的结果

供你参考

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

标签: javascripthtml

解决方案


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

推荐阅读