if (isset($terms[0])) { $termMarker = getCategoryMeta("marker", intval($terms[0]->term_id)); } $item->marker = $termMarker; // excerpt $item->excerptDir = aitGetPostExcerpt($item->post_excerpt, $item->post_content); $item->packageClass = getItemPackageClass($item->post_author); $latteParams['term'] = null; $latteParams['items'] = array($item); $latteParams['ancestors'] = array(); } else { if (isset($terms[0])) { // term $terms[0]->link = get_term_link(intval($terms[0]->term_id), 'ait-dir-item-category'); $terms[0]->icon = getRealThumbnailUrl(getCategoryMeta("icon", intval($terms[0]->term_id))); $terms[0]->marker = getCategoryMeta("marker", intval($terms[0]->term_id)); $termAncestors = array_reverse(get_ancestors(intval($terms[0]->term_id), 'ait-dir-item-category')); $ancestors = array(); foreach ($termAncestors as $anc) { $term = get_term($anc, 'ait-dir-item-category'); $term->link = get_term_link(intval($term->term_id), 'ait-dir-item-category'); $ancestors[] = $term; } $categoryID = intval($terms[0]->term_id); $location = 0; $search = ''; $radiusKm = $aitThemeOptions->directory->showDistanceInDetail ? $aitThemeOptions->directory->showDistanceInDetail : 1000; // center and radius $radius = array($radiusKm, $latteParams['options']['gpsLatitude'], $latteParams['options']['gpsLongitude']); $items = getItems($categoryID, $location, $search, $radius); $latteParams['term'] = $terms[0];
<?php $term = $GLOBALS['wp_query']->queried_object; $subcategories = get_terms('ait-dir-item-category', array('parent' => intval($term->term_id), 'hide_empty' => false)); $posts = WpLatte::createPostEntity($GLOBALS['wp_query']->posts); $items = get_posts(array('numberposts' => -1, 'post_type' => 'ait-dir-item', 'tax_query' => array(array('taxonomy' => 'ait-dir-item-category', 'field' => 'id', 'terms' => intval($term->term_id), 'include_children' => true)))); $term->link = get_term_link($term); $term->icon = getRealThumbnailUrl(getCategoryMeta("icon", intval($term->term_id))); $term->marker = getCategoryMeta("marker", intval($term->term_id)); // add subcategory links foreach ($subcategories as $category) { $category->link = get_term_link(intval($category->term_id), 'ait-dir-item-category'); $category->icon = getRealThumbnailUrl(getCategoryMeta("icon", intval($category->term_id))); $category->excerpt = getCategoryMeta("excerpt", intval($category->term_id)); } // add items details foreach ($items as $item) { $item->link = get_permalink($item->ID); $image = wp_get_attachment_image_src(get_post_thumbnail_id($item->ID)); if ($image !== false) { $item->thumbnailDir = getRealThumbnailUrl($image[0]); } else { $item->thumbnailDir = getRealThumbnailUrl($aitThemeOptions->directory->defaultItemImage); } $item->marker = $term->marker; $item->optionsDir = get_post_meta($item->ID, '_ait-dir-item', true); $item->packageClass = getItemPackageClass($item->post_author); $item->rating = get_post_meta($item->ID, 'rating', true); } // add posts details foreach ($posts as $item) {
/** * get items from DB * @param integer $category category ID * @param integer $location location ID * @param string $search search keyword * @param array $radius (radius in km, lat, lon) * @return array items */ function getItems($category = 0, $location = 0, $search = '', $radius = array()) { $params = array('post_type' => 'ait-dir-item', 'nopaging' => true, 'post_status' => 'publish'); $taxquery = array(); $taxquery['relation'] = 'AND'; if ($category != 0) { $taxquery[] = array('taxonomy' => 'ait-dir-item-category', 'field' => 'id', 'terms' => $category, 'include_children' => true); } if ($location != 0) { $taxquery[] = array('taxonomy' => 'ait-dir-item-location', 'field' => 'id', 'terms' => $location, 'include_children' => true); } if ($category != 0 || $location != 0) { $params['tax_query'] = $taxquery; } if ($search != '') { $params['s'] = $search; } $itemsQuery = new WP_Query(); $items = $itemsQuery->query($params); // add item details foreach ($items as $key => $item) { // options $item->optionsDir = get_post_meta($item->ID, '_ait-dir-item', true); // filter radius if (!empty($radius) && !isPointInRadius($radius[0], $radius[1], $radius[2], $item->optionsDir['gpsLatitude'], $item->optionsDir['gpsLongitude'])) { unset($items[$key]); } else { // link $item->link = get_permalink($item->ID); // thumbnail $image = wp_get_attachment_image_src(get_post_thumbnail_id($item->ID), 'full'); if ($image !== false) { $item->thumbnailDir = $image[0]; } else { $item->thumbnailDir = $GLOBALS['aitThemeOptions']->directory->defaultItemImage; } // marker $terms = wp_get_post_terms($item->ID, 'ait-dir-item-category'); $termMarker = $GLOBALS['aitThemeOptions']->directoryMap->defaultMapMarkerImage; if (isset($terms[0])) { $termMarker = getCategoryMeta("marker", intval($terms[0]->term_id)); } $item->marker = $termMarker; // excerpt $item->excerptDir = aitGetPostExcerpt($item->post_excerpt, $item->post_content); // package class $item->packageClass = getItemPackageClass($item->post_author); // rating $item->rating = get_post_meta($item->ID, 'rating', true); } } return $items; }