이것은 미치게합니다. 나는 할 수있는 일이 쉬운 것처럼 보일 수 없다. 나는 사용 된 RV를 판매하는 Wordpress 사이트에 대한 사용자 정의 검색 기능을 구축 중이다. Woocommerce를 사용하여 제품 카탈로그를 작성합니다 (post_type = post 대신 post_type = product로 제품을 생성하므로 중요하지 않을 수 있음).Wordpress 사용자 정의 검색
차량의 '클래스'(예 : '클래스 A', '클래스 B', '클래스 C'등) 및 '연료 유형'(예 : '가솔린' '디젤', '견인차'). 따라서 각 제품은 동일한 meta_key에 대해 서로 다른 meta_value를 가질 수 있지만, 한 번만 정의 된 각 meta_key를 가질 수 있으며 meta_key 당 하나의 meta_value 만 가질 수 있습니다.
검색 양식의 일부는 다음과 같습니다. 다음 쿼리를 실행하고 결과를 반환하기 위해 전송되는
<h4>Type/Class</h4>
<label><input type="checkbox" name="a1" value="0" />All Types</label>
<label><input type="checkbox" name="a2" value="Class A" />"Class A" RV's</label>
<label><input type="checkbox" name="a3" value="Class B" />"Class B" RV's</label>
<label><input type="checkbox" name="a4" value="Class C" />"Class C" RV's</label>
<label><input type="checkbox" name="a5" value="Fifth Wheel" />Fifth Wheel RV's</label>
<label><input type="checkbox" name="a6" value="Toy Hauler" />Toy Haulers</label>
<label><input type="checkbox" name="a7" value="Travel Trailer" />Travel Trailer RV's</label>
<label><input type="checkbox" name="a8" value="Camping Trailer" />Camping Trailers</label>
<h4>Engine Type</h4>
<label><input type="checkbox" name="c1" value="0" />All Engine Types</label>
<label><input type="checkbox" name="c2" value="Gasoline" />Gasoline</label>
<label><input type="checkbox" name="c3" value="Diesel" />Diesel</label>
<label><input type="checkbox" name="c4" value="Towable" />Towable</label>
(가 더하지만이 모든 우리는 순간에 대해 걱정할 필요). 이것은 무엇을
$result = mysql_query("
SELECT * FROM wp_postmeta
WHERE
(meta_key= 'class' AND (meta_value = '$a2' OR meta_value = '$a3' OR meta_value = '$a4' OR meta_value = '$a5' OR meta_value = '$a6' OR meta_value = '$a7' OR meta_value = '$a8'))
");
이 상자를 선택하면, 인 true 매개 변수 (1) 선택한 옵션 (들)에 대한 URL의 옵션 (예. site.com/search/?a2=1 전달 & 'Class A'및 'Class C'가 선택된 경우 a4 = 1). 이것은 잘 작동하는 것 같습니다.
그러나, 내가 다른 meta_key의 조합 검색을 시도하고 새로운 쿼리를 사용하여 값의 ...
$result = mysql_query("
SELECT * FROM wp_postmeta
WHERE
(meta_key= 'class' AND (meta_value = '$a2' OR meta_value = '$a3' OR meta_value = '$a4' OR meta_value = '$a5' OR meta_value = '$a6' OR meta_value = '$a7' OR meta_value = '$a8'))
AND
(meta_key= 'fuel' AND (meta_value = '$c2' OR meta_value = '$c3' OR meta_value = '$c4'))
");
... 그것은 더 이상 작동하지 않습니다 :(각 meta_key 문은 독립적으로 작동합니다 이상하지만 그것은 작동하지 않습니다. 이상하게도, 내가 5 행에서 OR로 변경하면 작동하지만 검색 결과를 반환하지 않으므로 검색 결과를 반환하지 않습니다. 그것을 좁히십시오.
어떤 도움을 주셔서 감사합니다. 누군가가 이것을 어떻게 풀어 낼지 알고 있다면 다른 방법을 시도해 볼 의향이 있습니다. ould이 모든 잘못에 대해 가야합니다. 저는 디자이너로서 처음으로 최근에 프로그래머로 바뀌었고 제 수준의 전문 기술은 중급 수준이기 때문에 친절하게 대해주십시오.
빙고! 그것은 나를 올바른 방향으로 움직이게합니다. 고마워요! – CChoma