여기에 처음 게시; 지난 며칠간 이것에 썼지 만 나는 가까이 있지만 붙어있다. 모든 사용자 정의 작업에서 제대로 작동하는 지원되지 않는 테마를 사용합니다. 그것은 비즈니스 디렉토리 웹 사이트입니다. 테마에는 서식을 변경하고 출력 된 목록을 강조 표시하는 "추천"배치가 포함됩니다. 주제는 또한 목록에 대한 사용자 정의 게시물 유형을 사용합니다. 사용자가 도시, 주에 들어가면 테마가 검색 반경 내에서 가능한 한 많은 목록을 반환하며, 해당 반경 내에서 발견 된 추천 목록을 '가장 가까운 위치가 아니더라도 검색 결과의 상단으로 이동하려고합니다. ". 다른 파일 (views.php) 가장 높은 정격하여 정렬 순서를 변경하는 매개 변수가 내 그런
static function posts_clauses($clauses, $wp_query) {
extract(appthemes_geo_get_args());
global $wpdb;
$geo_query = $wp_query->get('app_geo_query');
if (!$geo_query)
return $clauses;
extract($geo_query, EXTR_SKIP);
$R = 'mi' == $unit ? 3959 : 6371;
$clauses['join'] .= $wpdb->prepare(" INNER JOIN (
SELECT post_id, (%d * acos(cos(radians(%f)) * cos(radians(lat)) * cos(radians(lng) - radians(%f)) + sin(radians(%f)) * sin(radians(lat)))) AS distance FROM $wpdb->app_geodata
) as distances ON ($wpdb->posts.ID = distances.post_id)
", $R, $lat, $lng, $lat);
$clauses['where'] .= $wpdb->prepare(" AND distance < %f", (float) $rad);
if ('distance' == $wp_query->get('orderby')) {
$clauses['orderby'] = 'distance ' . ('DESC' == strtoupper($wp_query->get('order')) ? 'DESC' : 'ASC');
}
return $clauses;
}
}
: 주제는 다음과 같은 코드를 사용하여 geo.php 파일 내에서 "거리"로 설정 , 알파벳순, 최신 등. 우리가 붙어있는 곳은 특집 목록을 거리 결과 위에 표시하려고합니다.
function parse_query($wp_query) {
global $va_options, $wpdb;
$wp_query->set('ls', trim(get_query_var('ls')));
$wp_query->set('s', get_query_var('ls'));
$wp_query->set('post_type', VA_LISTING_PTYPE);
$wp_query->set('posts_per_page', $va_options->listings_per_page);
if ('' == $wp_query->get('order'))
$wp_query->set('order', 'asc');
$orderby = $wp_query->get('orderby');
if (empty($orderby)) {
$location = trim($wp_query->get('location'));
if (!empty($location)) {
$orderby = $va_options->default_geo_search_sort;
} else {
$orderby = $va_options->default_search_sort;
}
$wp_query->set('orderby', $orderby);
}
$wp_query->set('va_orderby', $orderby);
switch ($orderby) {
case 'default':
default:
$wp_query->set('meta_key', VA_ITEM_FEATURED);
$wp_query->set('orderby', 'meta_value_num');
$wp_query->set('order', 'desc');
$wp_query->set('va-featured', true);
break;
}
내가 제거한 몇 가지 다른 "의 경우"수행하는 코드를 더 쉽게 만드는 다음 코드를 사용하여 상단에있는 기능을 갖춘 돌려주는 않는 wp_query이있다.
case 'distance':
break;
이 분명히 ORDERBY가 geo.php 파일에 정의되어 있기 때문이다 : 스위치 ORDERBY에서 기본적으로 거리는 다음과 같습니다. 나는 $ wp_query-> set ('meta_key', 'featured_cat')을 추가하려고 시도했다. (그것은 숫자 1 또는 0이며 1이 추천 됨) orderby에 대한 배열을 추가하지만 취하지는 않습니다.
나는 대답이 나를 쳐다 보지만 도움이 필요하다고 생각합니다. 모든 도움을 주시면 감사하겠습니다.