function ewf_projects_isotope($atts, $content, $filters = true, $wrapper = true, $return_array = false) { global $post; $options = shortcode_atts(array("unlimited" => true, "items" => 6, "start" => 0, "service" => null, "exclude" => null, "loaditems" => 6), $atts); extract($options); $src = null; # Build WP Query # $query_projects = ewf_hlp_queryBuilder($options); $wp_query_project = new WP_Query($query_projects); # Load items using WP Query # $count_items = 0; while ($wp_query_project->have_posts()) { $wp_query_project->the_post(); $image_large_preview = null; $image_extra_large_preview = null; $count_items++; # Get project terms # $project_terms = wp_get_post_terms($post->ID, EWF_PROJECTS_TAX_SERVICES); $project_terms_src = null; foreach ($project_terms as $key => $service) { $project_terms_src .= $service->slug . ' '; } $src .= '<li data-id="' . $post->ID . '" class="item ' . $project_terms_src . '"><div class="portfolio-item"><div class="portfolio-item-preview">'; # Get the featured image # $image_id = get_post_thumbnail_id(); if ($image_id) { $image_large_preview = wp_get_attachment_image_src($image_id, 'project-preview-medium'); $image_extra_large_preview = wp_get_attachment_image_src($image_id, 'large'); $src .= '<a href="#"><img src="' . $image_large_preview[0] . '" width="313" height="320" alt="" /></a>'; } $src .= '<div class="portfolio-item-overlay">'; $src .= '<div class="portfolio-item-description"> <h4>' . get_the_title() . '<span></span></h4> <p>' . get_the_excerpt() . '</p> </div>'; $src .= '<div class="portfolio-item-overlay-actions"> <a href="' . $image_extra_large_preview[0] . '" class="portfolio-item-zoom magnificPopup-gallery"><i class="fa fa-search-plus"></i></a> <a href="' . get_permalink() . '" class="portfolio-item-link"><i class="fa fa-angle-right"></i></a> </div>'; $src .= '</div>'; $src .= '</div></div></li>'; if ($return_array) { if ($count_items == $loaditems) { break; } } else { if ($count_items == $items) { break; } } } wp_reset_query(); # Display portfolio # if ($wrapper) { $src = '<ul class="portfolio-items fixed">' . $src . '</ul>'; $src .= '<a href="#" class="portfolio-load-more" data-load-items="' . $loaditems . '" ><i class="fa fa-repeat"></i> Load more</a>'; } # Attach filters # if ($filters == true) { $filter_terms = get_terms(EWF_PROJECTS_TAX_SERVICES); $filter_src = null; $filter_items = array('all' => 0); if (is_array($filter_terms)) { $filter_src .= '<ul>'; $filter_src .= '<li><a class="active" href="#" data-items="' . $wp_query_project->found_posts . '" data-filter="*" data-term="all" >All</a></li>'; foreach ($filter_terms as $key => $service) { $filter_src .= '<li><a data-term="' . $service->slug . '" data-items="' . intval($service->count) . '" data-filter=".' . $service->slug . '" href="#">' . $service->name . '</a></li>'; } $filter_src .= '</ul>'; $src = '<div class="portfolio-filter">' . $filter_src . '</div><!-- end .portfolio-filter -->' . $src; } } if ($return_array) { return array('source' => $src); } return $src; }
function ewf_projects_isogrid($atts, $content, $filters = true, $wrapper = true, $return_array = false) { global $post; $options = shortcode_atts(array("unlimited" => true, "title" => null, "button_title" => __('Load more', 'bitpub'), "button_alignment" => 'text-center', "items" => 6, "start" => 0, "display" => 'all', "all_label" => __('All', 'bitpub'), "load_more" => 'true', "style" => 'ewf-portfolio-style-1', "service" => null, "exclude" => null, "loaditems" => 3, "columns" => 3, 'css' => null), $atts); extract($options); $class_extra = ' ' . $css; $src = null; // Build WP Query // $query_projects = ewf_hlp_queryBuilder($options); $wp_query_project = new WP_Query($query_projects); $_ewf_span = 3; switch ($columns) { case '3': $_ewf_span = '4'; break; case '4': $_ewf_span = '3'; break; } if (get_option(EWF_SETUP_THNAME . "_debug_mode", 'false') == 'true' && !$return_array) { echo '<pre>'; print_r($atts); print_r($options); print_r($query_projects); echo '<br/>Items:' . $items; echo '</pre>'; } // Load items using WP Query // $count_items = 0; while ($wp_query_project->have_posts()) { $wp_query_project->the_post(); $image_large_preview = null; $image_extra_large_preview = null; $count_items++; // Get project terms // $project_terms = wp_get_post_terms($post->ID, EWF_PROJECTS_TAX_SERVICES); $project_terms_src = null; $project_services = null; foreach ($project_terms as $key => $service) { $project_terms_src .= $service->slug . ' '; if ($project_services == null) { $project_services .= $service->name; // break; // Stop at the first category } else { $project_services .= ', ' . $service->name; } } // Get the featured image // $project_image_id = get_post_thumbnail_id(); $project_image_src = null; if ($project_image_id) { $image_large_preview = wp_get_attachment_image_src($project_image_id, 'ewf-portfolio-filtrable'); $image_extra_large_preview = wp_get_attachment_image_src($project_image_id, 'large'); $project_image_src = '<img src="' . $image_large_preview[0] . '" alt="" />'; } ob_start(); switch ($style) { // Style Isotope Grid // case 'ewf-portfolio-style-1': echo '<div data-id="' . $post->ID . '" class="item ' . $project_terms_src . '" data-terms="' . $project_services . '"> <div class="portfolio-item"> <div class="portfolio-item-preview"> ' . $project_image_src . ' <div class="portfolio-item-overlay"> <div class="portfolio-item-description"> <h5><a href="' . get_permalink() . '">' . get_the_title() . '</a></h5> <p>' . get_the_excerpt() . '</p> <a class="btn" href="' . get_permalink() . '">' . __('View project', 'bitpub') . '</a> </div><!-- end .portfolio-item-description --> </div> </div><!-- end .portfolio-item-preview --> </div> <!-- end .portfolio-item --> </div>'; break; // <a class="portfolio-item-zoom magnificPopup-gallery" href="'.$image_extra_large_preview[0].'"> </a> // <h5>'.$project_services.'</h5> // <div class="portfolio-item-overlay-actions"> // <a class="portfolio-item-zoom magnificPopup-gallery" href="'.$image_extra_large_preview[0].'"><span>+</span></a> // <a class="portfolio-item-link" href="'.get_permalink().'"><span>></span></a> // </div><!-- end .portfolio-item-overlay-actions --> } $src .= ob_get_clean(); if ($return_array) { if ($count_items == $loaditems) { break; } } else { if ($count_items == $items) { break; } } } wp_reset_postdata(); // Display portfolio // if ($wrapper) { $src = '<div class="wpb_row vc_row"><div class="span12"><div class="portfolio-items portfolio-columns tree-cols portfolio-isotope gutter columns-' . $columns . ' fixed' . $class_extra . '" data-display="' . $display . '" data-style="' . $style . '">' . $src . '</div></div></div>'; if ($load_more == 'true') { $src .= '<div class="vc_row wpb_row"> <div class="span12 ' . $button_alignment . '"> <a href="#" class="btn btn-large portfolio-load-more" data-display="' . $display . '" data-style="' . $style . '" data-load-items="' . $loaditems . '"><span>' . $button_title . '</span></a> </div><!-- end .span12 --> </div>'; } // Attach filters & title // $src_header = null; $filter_src = null; // if ($display ) if ($filters == true) { $filter_terms = get_terms(EWF_PROJECTS_TAX_SERVICES); $filter_items = array('all' => 0); $filter_css_class = null; if (is_array($filter_terms)) { $filter_src .= '<ul>'; $filter_src .= '<li><a class="active" href="#" data-items="' . $wp_query_project->found_posts . '" data-filter="*" data-term="all" >' . $all_label . '</a></li>'; foreach ($filter_terms as $key => $service) { $filter_src .= '<li><a data-term="' . $service->slug . '" data-items="' . intval($service->count) . '" data-filter=".' . $service->slug . '" href="#">' . $service->name . '</a></li>'; } $filter_src .= '</ul>'; } } $display_title = null; $display_filter = null; $show_title = false; $show_filter = false; if ($display != 'none') { switch ($display) { case 'all': $display_title = '<h2>' . $title . '</h2>'; $display_filter = '<div class="portfolio-filter">' . $filter_src . '</div><!-- end .portfolio-filter -->'; $show_title = true; $show_filter = true; break; case 'title': $display_title = '<h2>' . $title . '</h2>'; $display_filter = '<div class="portfolio-filter portfolio-filter-hidden">' . $filter_src . '</div><!-- end .portfolio-filter -->'; $show_title = true; $show_filter = false; break; case 'title-center': $display_title = '<h2 class="text-center">' . $title . '</h2>'; $display_filter = '<div class="portfolio-filter portfolio-filter-hidden">' . $filter_src . '</div><!-- end .portfolio-filter -->'; $show_title = true; $show_filter = false; break; case 'no-filters': $display_title = null; $display_filter = '<div class="portfolio-filter portfolio-filter-hidden">' . $filter_src . '</div><!-- end .portfolio-filter -->'; $show_title = false; $show_filter = false; break; case 'filters-left': $display_title = null; $display_filter = '<div class="portfolio-filter text-left">' . $filter_src . '</div><!-- end .portfolio-filter -->'; $show_title = false; $show_filter = true; break; case 'filters-right': $display_title = null; $display_filter = '<div class="portfolio-filter text-right">' . $filter_src . '</div><!-- end .portfolio-filter -->'; $show_title = false; $show_filter = true; break; case 'filters': $display_title = null; $display_filter = '<div class="portfolio-filter">' . $filter_src . '</div><!-- end .portfolio-filter -->'; $show_title = false; $show_filter = true; break; case 'filters-center': $display_title = null; $display_filter = '<div class="portfolio-filter text-center">' . $filter_src . '</div><!-- end .portfolio-filter -->'; $show_title = false; $show_filter = true; break; case 'none': $display_title = null; $display_filter = '<div class="portfolio-filter portfolio-filter-hidden">' . $filter_src . '</div><!-- end .portfolio-filter -->'; $show_title = false; $show_filter = false; break; } } if ($show_title || $show_filter) { $src_header = '<div class="vc_row wpb_row title-filter" data-display="' . $display . '">'; if ($show_title && !$show_filter || !$show_title && $show_filter) { $src_header .= '<div class="span12">'; $src_header .= $display_title; $src_header .= $display_filter; $src_header .= '</div>'; } else { $src_header .= '<div class="span3">'; $src_header .= $display_title; $src_header .= '</div>'; $src_header .= '<div class="span9 text-right">'; $src_header .= $display_filter; $src_header .= '</div>'; } $src_header .= '</div>'; } elseif (!$show_title || !$show_filter) { $src_header = '<div class="vc_row wpb_row title-filter" data-display="' . $display . '" style="background:Red;">'; $src_header .= $display_filter; $src_header .= '</div>'; } else { $src_header = '<div class="vc_row wpb_row title-filter no-all" data-display="' . $display . '">' . $display_filter . '</div>'; } } if ($return_array) { return array('source' => $src); } return '<div class="ewf-portfolio-isogrid-wrapper">' . $src_header . $src . '</div>'; }