function tdr_top_choices_table($args) { $defaults = array('number_to_show' => 3, 'number_to_query' => 3, 'offer_cat_terms' => get_terms('offer-category', array('fields' => 'ids')), 'rank_meta_key' => ''); $args = wp_parse_args($args, $defaults); extract($args, EXTR_SKIP); /* Set up the Query */ /* Taxonomy for the Query * ***************************************************************/ // Set up the taxonomy $offer_cat_args = array(array('taxonomy' => 'offer-category', 'field' => 'id', 'terms' => $offer_cat_terms)); /* Create the query * ***************************************************************/ $basic_query = new WP_Query(array('tax_query' => $offer_cat_args, 'post_type' => 'tdr_product', 'posts_per_page' => (int) $number_to_query, 'order' => 'ASC', 'orderby' => 'meta_value_num', 'meta_key' => 'thunder_plugin_products_rank')); // If a Rank Key is defined, reorder the Products if (!empty($rank_meta_key)) { global $tdr_rank_key; $tdr_rank_key = $rank_meta_key; usort(&$basic_query->{'posts'}, 'tdr_sort_by_offer_category_rank'); $basic_query->rewind_posts(); } // Update to only show the $number_to_show $basic_query->post_count = $number_to_show; $returner = '<div class="row">'; $returner .= '<div class="span">'; // Set up tdr_product $product = new Thunder_Plugin_Products(); while ($basic_query->have_posts()) { $basic_query->the_post(); // Get the ID for the Rating Bar, this determines how the stars appear $internal_rating = floatval($product->get_the_internal_rating()); if ($internal_rating < 2.2) { $internal_rating_id = 'two_zero'; } elseif ($internal_rating < 2.7) { $internal_rating_id = 'two_five'; } elseif ($internal_rating < 3.2) { $internal_rating_id = 'three_zero'; } elseif ($internal_rating < 3.7) { $internal_rating_id = 'three_five'; } elseif ($internal_rating < 4.2) { $internal_rating_id = 'four_zero'; } elseif ($internal_rating < 4.7) { $internal_rating_id = 'four_five'; } elseif ($internal_rating >= 4.7) { $internal_rating_id = 'five_zero'; } else { $internal_rating_id = $internal_rating; } // Force display of non-significant digits for the internal rating $internal_rating = sprintf("%1.1f", $internal_rating); // Output a row for this Product, and get its name $returner .= '<div class="row"><div class="span4" style="border-top: 1px solid #eee; padding: 10px 0;">'; $product_name = $product->get_the_affiliate_name(); // Get the logo, and set up link add_image_size('our_top_choices_thumb', 120, 30); $review_link = get_permalink(); $attr['alt'] = $product_name . ' Reviews'; $attr['title'] = $product_name . ' Reviews'; if (class_exists('MultiPostThumbnails') && MultiPostThumbnails::has_post_thumbnail('tdr_product', 'thumbnail-affiliate-logo')) { $affiliate_img = MultiPostThumbnails::get_the_post_thumbnail('tdr_product', 'thumbnail-affiliate-logo', NULL, 'our_top_choices_thumb', $attr); } $returner .= "<div class='our_top_logos'>"; $returner .= "<a href='{$review_link}'>"; $returner .= $affiliate_img; $returner .= '</a>'; $returner .= "</div><!-- end .our_top_logos -->"; $returner .= "<div class='our_top_ratings' style=''>"; $returner .= "<div id='{$internal_rating_id}' class='rating-bar' style='position: relative; left: 5px;'></div>"; $returner .= "<span style='font-size: 24px; font-weight: bold; line-height: 24px; '>{$internal_rating}</span>" . " <span class='review-link'>(<a href='{$review_link}' style=''>Review</a>)</span>"; $returner .= "</div>"; $returner .= "<div class='our_top_visit' style=''>"; $product_id = $product->get_the_id(); $jump_page_url = get_home_url() . "/visit?site={$product_id}&t=sidebar"; $returner .= "<a target=_blank' href='{$jump_page_url}'><span style='font-size:10px;'>▶</span> Visit Site</a>"; $returner .= "</div>"; $returner .= '</div><!-- end .span --></div><!-- end .row -->'; } $returner .= "</div><!-- end .span -->"; $returner .= "</div><!-- end .row -->"; $returner .= '<div class="read_more_articles">'; $offer_category_permalink = get_home_url() . '/reviews'; $returner .= "<a href='{$offer_category_permalink}' id='review_page_link'>+ View All Reviews</a>"; $returner .= '</div><!-- end .read_more_articles -->'; return $returner; }