itsource

워드프레스의 카테고리명으로 LIKE를 사용하여 투고를 검색하는가?

mycopycode 2023. 3. 18. 08:36
반응형

워드프레스의 카테고리명으로 LIKE를 사용하여 투고를 검색하는가?

  • press basic 검색 필터를 커스터마이즈해야 합니다.
  • 투고 제목과 투고 콘텐츠의 키워드에 대한 검색은 잘 되고 있습니다.
  • 여기서 사용자가 카테고리 이름과 일치하는 이름을 입력하면 다른 결과뿐만 아니라 해당 카테고리에서 결과도 가져올 수 있는 결과를 보여줘야 합니다.
  • Tax Query에서 category_name 또는 category_in 연산자에 대해 LIKE 조항을 사용하는 것과 비슷하다고 생각합니다.

    
    
    $sqs = get_sqs(array)'fields' => 'ids','post_type' => 'post','post_status' => 'post_status','syslog_per_page' => -1,'s' => $_REQUEST['s] ? ? $_REQUEST['s] : '','tax_timeout' => 어레이(배열()'분류학' => '분류학 이름','field' => 'field','like' => 'SLUG OF the Term', // LIKE(여기에는 LIKE 절 등이 있어야 함)),))); 

    이 시나리오를 실현하는 방법이란 사용자가 카테고리 이름과 일치하는 키워드를 입력하면 해당 카테고리의 모든 결과와 일반 검색 결과를 가져와야 함을 의미합니다.

예:검색바 사용자가 "ABC"라고 쓰고 "ABC Park"라는 이름의 카테고리가 있는 경우, 이 카테고리에서 결과를 가져와 "ABC"가 포함된 게시물 제목과 내용을 포함해야 합니다.

좋아요... 해결책을 생각해냈어요 테이블에서 모든 카테고리 ID를 가져왔어요termsLIKE 쿼리가 있으면 다른 쿼리에서 이 배열을 카테고리 파라미터로 전달합니다.여기 암호가 있습니다.

$term_ids=array(); 
      $cat_Args="SELECT * FROM $wpdb->terms WHERE name LIKE '%".$_REQUEST['s']."%' ";
      $cats = $wpdb->get_results($cat_Args, OBJECT);
      array_push($term_ids,$cats[0]->term_id);    



$q1 = get_posts(array(
        'fields' => 'ids',
        'post_type' => 'post',
        'post_status' => 'publish',
        'posts_per_page' => -1,
        's' =>  $_REQUEST['s'] ? $_REQUEST['s'] : '' 

));
 $q2 = get_posts(array(
        'fields' => 'ids',
        'post_type' => 'post',
        'post_status' => 'publish',
        'posts_per_page' => -1,
        'category' =>$term_ids
));
$unique = array_unique( array_merge( $q1, $q2 ) );

$posts = get_posts(array(
    'post_type' => 'post',
    'post__in' => $unique,
    'posts_per_page' => -1
));
  if ($posts ) : 

foreach( $posts as $post ) :
//show results
endforeach;
endif;

하지만 여전히 나는 더 최소적이고 정확한 방법을 원한다.:)

언급URL : https://stackoverflow.com/questions/43316457/how-to-search-posts-using-like-for-category-name-in-wordpress

반응형