Ejemplo n.º 1
0
    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) {
Ejemplo n.º 3
0
/**
 * 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;
}