function grve_portfolio_shortcode($attr, $content) { $portfolio_row_start = $allow_filter = $class_fullwidth = $el_class = ''; extract(shortcode_atts(array('categories' => '', 'portfolio_style' => 'grid', 'portfolio_columns' => '3', 'portfolio_image_mode' => '', 'portfolio_link_type' => 'item', 'portfolio_link_type_title' => 'More Details', 'portfolio_filter' => '', 'portfolio_filter_align' => 'left', 'filter_order_by' => '', 'filter_order' => 'ASC', 'item_gutter' => 'yes', 'item_spinner' => 'no', 'items_per_page' => '4', 'items_to_show' => '12', 'hide_portfolio_title' => '', 'hide_portfolio_caption' => '', 'hide_portfolio_like' => '', 'portfolio_hover_style' => 'hover-style-1', 'zoom_effect' => 'in', 'overlay_color' => 'dark', 'overlay_opacity' => '60', 'order_by' => 'date', 'order' => 'DESC', 'disable_pagination' => '', 'slideshow_speed' => '3000', 'auto_play' => 'yes', 'navigation_type' => '1', 'navigation_color' => 'light', 'pause_hover' => 'no', 'margin_bottom' => '', 'el_class' => ''), $attr)); $portfolio_classes = array('grve-element'); $data_string = ''; switch ($portfolio_style) { case 'carousel': $data_string = ' data-items="' . esc_attr($items_per_page) . '" data-slider-autoplay="' . esc_attr($auto_play) . '" data-slider-speed="' . esc_attr($slideshow_speed) . '" data-slider-pause="' . esc_attr($pause_hover) . '"'; array_push($portfolio_classes, 'grve-carousel-wrapper'); if ('popup' == $portfolio_link_type) { array_push($portfolio_classes, 'grve-gallery-popup'); } $disable_pagination = 'yes'; break; case 'masonry': $portfolio_row_start = '<div class="grve-isotope-container">'; if ('popup' == $portfolio_link_type) { $portfolio_row_start = '<div class="grve-isotope-container grve-gallery-popup">'; } $data_string = ' data-gutter="' . esc_attr($item_gutter) . '" data-spinner="' . esc_attr($item_spinner) . '" data-type="' . esc_attr($portfolio_columns) . '-columns" data-layout="masonry"'; array_push($portfolio_classes, 'grve-portfolio'); array_push($portfolio_classes, 'grve-isotope'); $allow_filter = 'yes'; break; case 'multi-grid': $portfolio_row_start = '<div class="grve-isotope-container">'; if ('popup' == $portfolio_link_type) { $portfolio_row_start = '<div class="grve-isotope-container grve-gallery-popup">'; } $data_string = ' data-gutter="' . esc_attr($item_gutter) . '" data-spinner="' . esc_attr($item_spinner) . '" data-type="' . esc_attr($portfolio_columns) . '-columns" data-layout="packery"'; array_push($portfolio_classes, 'grve-portfolio'); array_push($portfolio_classes, 'grve-isotope'); $allow_filter = 'yes'; break; case 'small-media': $portfolio_row_start = '<div class="grve-standard-container">'; array_push($portfolio_classes, 'grve-portfolio'); array_push($portfolio_classes, 'grve-blog'); array_push($portfolio_classes, 'grve-small-media'); array_push($portfolio_classes, 'grve-non-isotope'); $allow_filter = 'yes'; $portfolio_link_type = 'item'; break; case 'grid': default: $portfolio_row_start = '<div class="grve-isotope-container">'; if ('popup' == $portfolio_link_type) { $portfolio_row_start = '<div class="grve-isotope-container grve-gallery-popup">'; } $data_string = ' data-gutter="' . esc_attr($item_gutter) . '" data-spinner="' . esc_attr($item_spinner) . '" data-type="' . esc_attr($portfolio_columns) . '-columns" data-layout="fitRows"'; array_push($portfolio_classes, 'grve-portfolio'); array_push($portfolio_classes, 'grve-isotope'); $allow_filter = 'yes'; break; } if (!empty($el_class)) { array_push($portfolio_classes, $el_class); } $portfolio_class_string = implode(' ', $portfolio_classes); $style = grve_osmosis_vce_build_margin_bottom_style($margin_bottom); $portfolio_cat = ""; $portfolio_category_ids = array(); if (!empty($categories)) { $portfolio_category_ids = explode(",", $categories); foreach ($portfolio_category_ids as $category_id) { $category_term = get_term($category_id, 'portfolio_category'); if (isset($category_term)) { $portfolio_cat = $portfolio_cat . $category_term->slug . ', '; } } } global $paged; $paged = 1; if ('yes' != $disable_pagination) { if (get_query_var('paged')) { $paged = get_query_var('paged'); } elseif (get_query_var('page')) { $paged = get_query_var('page'); } } $args = array('post_type' => 'portfolio', 'post_status' => 'publish', 'paged' => $paged, 'portfolio_category' => $portfolio_cat, 'posts_per_page' => $items_to_show, 'orderby' => $order_by, 'order' => $order); $query = new WP_Query($args); ob_start(); if ($query->have_posts()) { ?> <div class="<?php echo esc_attr($portfolio_class_string); ?> " style="<?php echo $style; ?> "<?php echo $data_string; ?> > <?php if ('yes' == $portfolio_filter && 'yes' == $allow_filter) { $category_prefix = '.portfolio_category_'; $category_filter_list = array(); $category_filter_array = array(); $all_string = apply_filters('grve_vce_portfolio_string_all_categories', __('All', 'grve-osmosis-vc-extension')); $category_filter_string = '<li data-filter="*" class="selected">' . $all_string . '</li>'; $category_filter_add = false; while ($query->have_posts()) { $query->the_post(); if ($portfolio_categories = get_the_terms(get_the_ID(), 'portfolio_category')) { foreach ($portfolio_categories as $category_term) { $category_filter_add = false; if (!in_array($category_term->term_id, $category_filter_list)) { if (!empty($portfolio_category_ids)) { if (in_array($category_term->term_id, $portfolio_category_ids)) { $category_filter_add = true; } } else { $category_filter_add = true; } if ($category_filter_add) { $category_filter_list[] = $category_term->term_id; if ('title' == $filter_order_by) { $category_filter_array[$category_term->name] = $category_term; } elseif ('slug' == $filter_order_by) { $category_filter_array[$category_term->slug] = $category_term; } else { $category_filter_array[$category_term->term_id] = $category_term; } } } } } } if (count($category_filter_array) > 1) { if ('' != $filter_order_by) { if ('ASC' == $filter_order) { ksort($category_filter_array); } else { krsort($category_filter_array); } } foreach ($category_filter_array as $category_filter) { $category_filter_string .= '<li data-filter="' . $category_prefix . $category_filter->slug . '">' . $category_filter->name . '</li>'; } ?> <div class="grve-filter grve-align-<?php echo esc_attr($portfolio_filter_align); ?> "> <ul> <?php echo $category_filter_string; ?> </ul> </div> <?php } } ?> <?php echo $portfolio_row_start; ?> <?php if ('carousel' == $portfolio_style) { ?> <?php if (0 != $navigation_type) { ?> <div class="grve-carousel-navigation grve-<?php echo esc_attr($navigation_color); ?> " data-navigation-type="<?php echo esc_attr($navigation_type); ?> "> <div class="grve-carousel-buttons"> <div class="grve-carousel-prev grve-icon-nav-left"></div> <div class="grve-carousel-next grve-icon-nav-right"></div> </div> </div> <?php } ?> <div class="grve-carousel grve-carousel-element grve-portfolio"<?php echo $data_string; ?> > <?php } $portfolio_index = 0; while ($query->have_posts()) { $query->the_post(); $image_size = 'grve-image-small-rect-horizontal'; $portfolio_index++; $portfolio_extra_class = ''; $caption = get_post_meta(get_the_ID(), 'grve_portfolio_description', true); $details = get_post_meta(get_the_ID(), 'grve_portfolio_details', true); $link_mode = get_post_meta(get_the_ID(), 'grve_portfolio_link_mode', true); $link_url = get_post_meta(get_the_ID(), 'grve_portfolio_link_url', true); $new_window = get_post_meta(get_the_ID(), 'grve_portfolio_link_new_window', true); $link_class = get_post_meta(get_the_ID(), 'grve_portfolio_link_extra_class', true); if ('carousel' != $portfolio_style) { $image_size = 'grve-image-small-square'; $portfolio_extra_class = 'grve-isotope-item grve-portfolio-item '; if ('multi-grid' == $portfolio_style) { $grve_packery_data = grve_osmosis_vce_get_packery_data($portfolio_index, $portfolio_columns); $portfolio_extra_class .= $grve_packery_data['class']; $image_size = $grve_packery_data['image_size']; } elseif ('masonry' == $portfolio_style) { if ('resize' == $portfolio_image_mode) { $portfolio_extra_class .= 'grve-masonry-image'; $image_size = 'large'; } else { $grve_masonry_data = grve_osmosis_vce_get_masonry_data($portfolio_index, $portfolio_columns); $portfolio_extra_class .= $grve_masonry_data['class']; $image_size = $grve_masonry_data['image_size']; } } elseif ('grid' == $portfolio_style) { if ('resize' == $portfolio_image_mode) { $image_size = 'large'; } } else { $portfolio_extra_class = 'grve-non-isotope-item grve-blog-item grve-small-post'; $image_size = 'grve-image-small-rect-horizontal'; if ('resize' == $portfolio_image_mode) { $image_size = 'large'; } } } else { $portfolio_extra_class = 'grve-portfolio-item'; echo '<div class="grve-carousel-item">'; } //Portfolio Link $portfolio_link_exists = true; $grve_target = '_self'; if (!empty($new_window)) { $grve_target = '_blank'; } ob_start(); if ('small-media' == $portfolio_style) { ?> <a title="<?php the_title(); ?> " href="<?php echo esc_url(get_permalink()); ?> "> <?php } else { if ('popup' == $portfolio_link_type) { ?> <a title="<?php the_title(); ?> " href="<?php grve_osmosis_vce_print_portfolio_image('full', 'link'); ?> "> <?php } else { if ('custom-link' == $portfolio_link_type) { if ('' == $link_mode) { ?> <a title="<?php the_title(); ?> " href="<?php echo esc_url(get_permalink()); ?> "> <?php } else { if ('link' == $link_mode && !empty($link_url)) { ?> <a title="<?php the_title(); ?> " class="<?php echo esc_attr($link_class); ?> " href="<?php echo esc_url($link_url); ?> " target="<?php echo esc_attr($grve_target); ?> "> <?php } else { $portfolio_link_exists = false; } } } else { ?> <a title="<?php the_title(); ?> " href="<?php echo esc_url(get_permalink()); ?> "> <?php } } } $link_start = ob_get_clean(); if ($portfolio_link_exists) { $link_end = '</a>'; } else { $link_end = ''; } ?> <article id="portfolio-<?php the_ID(); echo uniqid('-'); ?> " <?php post_class($portfolio_extra_class); ?> > <?php if ('carousel' == $portfolio_style) { ?> <figure class="grve-hover-style-1 grve-image-hover grve-zoom-<?php echo esc_attr($zoom_effect); ?> grve-<?php echo esc_attr($overlay_color); ?> "> <?php if (function_exists('grve_print_portfolio_like_counter') && 'yes' != $hide_portfolio_like) { grve_print_portfolio_like_counter(); } ?> <div class="grve-media grve-<?php echo esc_attr($overlay_color); ?> -overlay grve-opacity-<?php echo esc_attr($overlay_opacity); ?> "> <?php grve_osmosis_vce_print_portfolio_image($image_size); ?> </div> <figcaption> <?php if ('yes' != $hide_portfolio_title) { ?> <h6 class="grve-title grve-<?php echo esc_attr($overlay_color); ?> "><?php the_title(); ?> </h6> <?php } ?> <?php if (!empty($caption) && 'yes' != $hide_portfolio_caption) { ?> <span class="grve-caption grve-<?php echo esc_attr($overlay_color); ?> "><?php echo $caption; ?> </span> <?php } ?> <?php if ('popup' == $portfolio_link_type) { ?> <a title="<?php the_title(); ?> " class="grve-portfolio-btns" href="<?php grve_osmosis_vce_print_portfolio_image('full', 'link'); ?> "><?php echo $portfolio_link_type_title; ?> </a> <?php } elseif ($portfolio_link_exists) { if ('custom-link' == $portfolio_link_type && 'link' == $link_mode) { ?> <a class="grve-portfolio-btns" href="<?php echo esc_url($link_url); ?> " target="<?php echo esc_attr($grve_target); ?> "><?php echo $portfolio_link_type_title; ?> </a> <?php } else { ?> <a class="grve-portfolio-btns" href="<?php echo esc_url(get_permalink()); ?> "><?php echo $portfolio_link_type_title; ?> </a> <?php } } ?> </figcaption> </figure> <?php } elseif ('small-media' == $portfolio_style) { ?> <div class="grve-media grve-image-hover"> <?php echo $link_start; grve_osmosis_vce_print_portfolio_image($image_size); echo $link_end; ?> </div> <div class="grve-post-content"> <?php if ('yes' != $hide_portfolio_title) { ?> <?php echo $link_start; ?> <h4 class="grve-title grve-light"><?php the_title(); ?> </h4><?php echo $link_end; ?> <?php } ?> <div class="grve-post-meta"> <?php if (!empty($caption) && 'yes' != $hide_portfolio_caption) { ?> <span class="grve-caption grve-light"><?php echo $caption; ?> </span> <?php } ?> </div> <?php if (!empty($details)) { ?> <p><?php echo $details; ?> </p> <?php } ?> <a class="grve-read-more" href="<?php echo esc_url(get_permalink()); ?> "><?php echo $portfolio_link_type_title; ?> </a> </div> <?php } else { if ('hover-style-3' == $portfolio_hover_style) { ?> <?php echo $link_start; ?> <figure class="grve-hover-style-3 grve-image-hover grve-zoom-<?php echo esc_attr($zoom_effect); ?> grve-<?php echo esc_attr($overlay_color); ?> "> <div class="grve-media grve-<?php echo esc_attr($overlay_color); ?> -overlay grve-opacity-<?php echo esc_attr($overlay_opacity); ?> "> <?php if ($portfolio_link_exists) { ?> <span class="grve-portfolio-btns"><?php echo $portfolio_link_type_title; ?> </span> <?php } ?> <?php grve_osmosis_vce_print_portfolio_image($image_size); ?> </div> <?php if (function_exists('grve_print_portfolio_like_counter') && 'yes' != $hide_portfolio_like) { grve_print_portfolio_like_counter(); } ?> <figcaption> <?php if ('yes' != $hide_portfolio_title) { ?> <h6 class="grve-title grve-light"><?php the_title(); ?> </h6> <?php } ?> <?php if (!empty($caption) && 'yes' != $hide_portfolio_caption) { ?> <span class="grve-caption grve-light"><?php echo $caption; ?> </span> <?php } ?> </figcaption> </figure> <?php echo $link_end; ?> <?php } else { if ('hover-style-2' == $portfolio_hover_style) { ?> <?php echo $link_start; ?> <figure class="grve-hover-style-2 grve-<?php echo esc_attr($overlay_color); ?> "> <div class="grve-media"> <?php grve_osmosis_vce_print_portfolio_image($image_size); ?> </div> <figcaption class="grve-<?php echo esc_attr($overlay_color); ?> -overlay grve-opacity-<?php echo esc_attr($overlay_opacity); ?> "> <div class="grve-content"> <?php if (function_exists('grve_print_portfolio_like_counter') && 'yes' != $hide_portfolio_like) { grve_print_portfolio_like_counter(); } ?> <?php if ('yes' != $hide_portfolio_title) { ?> <h6 class="grve-title grve-<?php echo esc_attr($overlay_color); ?> "><?php the_title(); ?> </h6> <?php } ?> <?php if (!empty($caption) && 'yes' != $hide_portfolio_caption) { ?> <span class="grve-caption grve-<?php echo esc_attr($overlay_color); ?> "><?php echo $caption; ?> </span> <?php } ?> </div> </figcaption> </figure> <?php echo $link_end; ?> <?php } else { //Default Hover Style 1 ?> <?php echo $link_start; ?> <figure class="grve-hover-style-1 grve-image-hover grve-zoom-<?php echo esc_attr($zoom_effect); ?> grve-<?php echo esc_attr($overlay_color); ?> "> <?php if (function_exists('grve_print_portfolio_like_counter') && 'yes' != $hide_portfolio_like) { grve_print_portfolio_like_counter(); } ?> <div class="grve-media grve-<?php echo esc_attr($overlay_color); ?> -overlay grve-opacity-<?php echo esc_attr($overlay_opacity); ?> "> <?php grve_osmosis_vce_print_portfolio_image($image_size); ?> </div> <figcaption> <?php if ('yes' != $hide_portfolio_title) { ?> <h6 class="grve-title grve-<?php echo esc_attr($overlay_color); ?> "><?php the_title(); ?> </h6> <?php } ?> <?php if (!empty($caption) && 'yes' != $hide_portfolio_caption) { ?> <span class="grve-caption grve-<?php echo esc_attr($overlay_color); ?> "><?php echo $caption; ?> </span> <?php } ?> <?php if ($portfolio_link_exists) { ?> <span class="grve-portfolio-btns"><?php echo $portfolio_link_type_title; ?> </span> <?php } ?> </figcaption> </figure> <?php echo $link_end; ?> <?php } } } ?> </article> <?php if ('carousel' == $portfolio_style) { echo '</div>'; } } ?> </div> <?php if ('yes' != $disable_pagination) { $total = $query->max_num_pages; $big = 999999999; // need an unlikely integer if ($total > 1) { echo '<div class="grve-pagination">'; if (!($current_page = $paged)) { $current_page = 1; } if (get_option('permalink_structure')) { $format = 'page/%#%/'; } else { $format = '&paged=%#%'; } echo paginate_links(array('base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 'format' => $format, 'current' => max(1, $paged), 'total' => $total, 'mid_size' => 2, 'type' => 'list', 'prev_text' => '<i class="grve-icon-nav-left"></i>', 'next_text' => '<i class="grve-icon-nav-right"></i>', 'add_args' => false)); echo '</div>'; } } ?> </div> <?php } else { } wp_reset_postdata(); return ob_get_clean(); }
function grve_gallery_shortcode($attr, $content) { $output = $start_block = $end_block = $item_class = $class_fullwidth = $el_class = ''; extract(shortcode_atts(array('ids' => '', 'gallery_type' => 'grid', 'gallery_columns' => '3', 'item_gutter' => 'yes', 'hide_image_title' => '', 'hide_image_caption' => '', 'zoom_effect' => 'in', 'overlay_color' => 'dark', 'overlay_opacity' => '60', 'items_per_page' => '4', 'slideshow_speed' => '3000', 'auto_play' => 'yes', 'navigation_type' => '1', 'navigation_color' => 'light', 'pause_hover' => 'no', 'margin_bottom' => '', 'el_class' => ''), $attr)); $attachments = explode(",", $ids); if (empty($attachments)) { return ''; } //Gallery Classes $gallery_classes = array('grve-element', 'grve-gallery', 'grve-isotope', 'grve-gallery-popup'); if (!empty($el_class)) { array_push($gallery_classes, $el_class); } $gallery_class_string = implode(' ', $gallery_classes); $style = grve_osmosis_vce_build_margin_bottom_style($margin_bottom); $data_string = ''; switch ($gallery_type) { case 'masonry': $data_string = ' data-gutter="' . esc_attr($item_gutter) . '" data-type="' . esc_attr($gallery_columns) . '-columns" data-layout="masonry"'; break; case 'multi-grid': $data_string = ' data-gutter="' . esc_attr($item_gutter) . '" data-type="' . esc_attr($gallery_columns) . '-columns" data-layout="packery"'; break; case 'carousel': $data_string = ' data-items="' . esc_attr($items_per_page) . '" data-slider-autoplay="' . esc_attr($auto_play) . '" data-slider-speed="' . esc_attr($slideshow_speed) . '" data-slider-pause="' . esc_attr($pause_hover) . '"'; break; case 'grid': default: $data_string = ' data-gutter="' . esc_attr($item_gutter) . '" data-type="' . esc_attr($gallery_columns) . '-columns" data-layout="fitRows"'; break; } if ('carousel' == $gallery_type) { //Gallery Output ( carousel) $image_size = 'grve-image-small-rect-horizontal'; $output .= '<div class="grve-element grve-carousel-wrapper" style="' . $style . '">'; if (0 != $navigation_type) { $output .= '<div class="grve-carousel-navigation grve-' . esc_attr($navigation_color) . '" data-navigation-type="' . esc_attr($navigation_type) . '">'; $output .= ' <div class="grve-carousel-buttons">'; $output .= ' <div class="grve-carousel-prev grve-icon-nav-left"></div>'; $output .= ' <div class="grve-carousel-next grve-icon-nav-right"></div>'; $output .= ' </div>'; $output .= '</div>'; } $output .= ' <div class="grve-carousel grve-carousel-element ' . esc_attr($el_class) . '"' . $data_string . '> '; foreach ($attachments as $id) { $thumb_src = wp_get_attachment_image_src($id, $image_size); $image_dimensions = 'width="' . $thumb_src[1] . '" height="' . $thumb_src[2] . '"'; $alt = get_post_meta($id, '_wp_attachment_image_alt', true); $alt = !empty($alt) ? esc_attr($alt) : ''; $output .= '<div class="grve-carousel-item">'; $output .= ' <figure class="grve-image-hover">'; $output .= ' <div class="grve-media">'; $output .= ' <img src="' . esc_url($thumb_src[0]) . '" alt="' . $alt . '" ' . $image_dimensions . '>'; $output .= ' </div>'; $output .= ' </figure>'; $output .= '</div>'; } $output .= ' </div>'; $output .= '</div>'; } else { //Gallery Output ( grid / multi-grid / masonry) $output .= '<div class="' . esc_attr($gallery_class_string) . '" style="' . $style . '"' . $data_string . '>'; $output .= ' <div class="grve-isotope-container">'; $gallery_index = 0; $image_size = 'grve-image-small-square'; $image_size_class = ''; foreach ($attachments as $id) { $gallery_index++; if ('multi-grid' == $gallery_type) { $grve_packery_data = grve_osmosis_vce_get_packery_data($gallery_index, $gallery_columns); $image_size_class = ' ' . $grve_packery_data['class']; $image_size = $grve_packery_data['image_size']; } elseif ('masonry' == $gallery_type) { $grve_masonry_data = grve_osmosis_vce_get_masonry_data($gallery_index, $gallery_columns); $image_size_class = ' ' . $grve_masonry_data['class']; $image_size = $grve_masonry_data['image_size']; } $image_link_href = wp_get_attachment_url($id); $thumb_src = wp_get_attachment_image_src($id, $image_size); $image_dimensions = 'width="' . $thumb_src[1] . '" height="' . $thumb_src[2] . '"'; $full_src = wp_get_attachment_image_src($id, 'grve-image-fullscreen'); $image_title = get_post_field('post_title', $id); $caption = get_post_field('post_excerpt', $id); $alt = get_post_meta($id, '_wp_attachment_image_alt', true); $alt = !empty($alt) ? esc_attr($alt) : wptexturize($image_title); $output .= '<div class="grve-isotope-item ' . $image_size_class . '">'; $output .= ' <a href="' . esc_url($full_src[0]) . '">'; $output .= ' <figure class="grve-image-hover grve-zoom-' . $zoom_effect . '">'; $output .= ' <div class="grve-media grve-' . $overlay_color . '-overlay grve-opacity-' . $overlay_opacity . '">'; $output .= ' <img src="' . esc_url($thumb_src[0]) . '" alt="' . $alt . '" ' . $image_dimensions . '>'; $output .= ' </div>'; $output .= ' <figcaption>'; if (!empty($image_title) && 'yes' != $hide_image_title) { $output .= '<h6 class="grve-title grve-' . esc_attr($overlay_color) . '">' . wptexturize($image_title) . '</h6>'; } if (!empty($caption) && 'yes' != $hide_image_caption) { $output .= '<span class="grve-caption grve-' . esc_attr($overlay_color) . '">' . wptexturize($caption) . '</span>'; } $output .= ' </figcaption>'; $output .= ' </figure>'; $output .= ' </a>'; $output .= '</div>'; } $output .= ' </div>'; $output .= '</div>'; } return $output; }