programing

태그 또는 설명별 WooCommerce 제품 검색 게시물 조회

newsource 2023. 2. 7. 20:00

태그 또는 설명별 WooCommerce 제품 검색 게시물 조회

설명에 따라 제품을 검색하기 위한 커스텀 쿼리를 작성하려고 합니다.기본적으로는 WooCommerce 검색에는 설명별 검색이 포함되지 않습니다.사용하고 있는 것은query_posts기능을 합니다.코드는 다음과 같습니다.

$args = array(
    's'                   => $search_keyword,
    'post_type'           => 'product',
    'post_status'         => 'publish',
    'ignore_sticky_posts' => 1,
    'meta_query'          => array(
       array(
        'key'     => '_visibility',
        'value'   => array( 'search', 'visible' ),
        'compare' => 'IN'
        )
      )
   );
$products = get_posts( $args );

제품 설명을 검색하려면 다음 웹 사이트를 검색해야 합니다.post_content그거는 안 될 것 같은데get_posts()또는WP_Query()커스텀 SQL 쿼리를 작성하는 방법밖에 없습니다.

예를 들어 다음과 같은 것이 필요합니다.

function enhanced_product_search( $keyword ) {
    global $wpdb;

    // Manually build SQL query and get results (this query will return only IDs)
    $search_results = $wpdb->get_results(
        $wpdb->prepare(
            "SELECT posts.ID 
            FROM ssod_posts AS posts
                LEFT JOIN ssod_postmeta AS meta ON meta.post_id = posts.ID
            WHERE posts.post_type = 'product'
                AND posts.post_status = 'publish'
                AND meta.meta_key = '_visibility'
                AND meta.meta_value IN ('search', 'visible')
                AND ( posts.post_title LIKE '%{$keyword}%' OR posts.post_content LIKE '%{$keyword}%' );"
        ),
        'ARRAY_N'
    );

    $products = [];

    // Loop over search results to get products from their IDs
    foreach ( $search_results as $result ) {
        $products[] = wc_get_product( $result[0] );
    }

    return $products;
}

언급URL : https://stackoverflow.com/questions/37543391/woocommerce-search-products-by-tag-or-description-query-posts