public function vc_portfolio($attributes, $content) { $attributes = shortcode_atts(array('style' => false, 'align' => false, 'meta' => false, 'pagination' => '', 'filters' => false, 'columns' => 3, 'category' => null, 'items' => null, 'ratio' => '3:2', 'with_indents' => false), $attributes); if (!in_array($attributes['columns'], array(2, 3, 4, 5))) { $attributes['columns'] = 3; } if (!in_array($attributes['ratio'], array('3:2', '4:3', '1:1', '2:3', '3:4'))) { $attributes['ratio'] = '3:2'; } if (!in_array($attributes['style'], array('type_1', 'type_2', 'type_3', 'type_4', 'type_5', 'type_6', 'type_7', 'type_8', 'type_9', 'type_10'))) { $attributes['style'] = 'type_1'; } if (!in_array($attributes['align'], array('left', 'right', 'center'))) { $attributes['align'] = 'center'; } $attributes['ratio'] = str_replace(':', '-', $attributes['ratio']); global $wp_query; $attributes['items'] = intval($attributes['items']); $portfolio_items = (is_integer($attributes['items']) and $attributes['items'] > 0) ? $attributes['items'] : $attributes['columns']; global $paged; if (is_front_page()) { $page_string = 'page'; } else { $page_string = 'paged'; } if ($attributes['pagination'] == 1 or $attributes['pagination'] == 'yes' or $attributes['pagination'] == 'regular') { $paged = get_query_var($page_string) ? get_query_var($page_string) : 1; } else { $paged = 1; } $args = array('post_type' => 'us_portfolio', 'posts_per_page' => $portfolio_items, 'post_status' => 'publish', 'orderby' => 'date', 'order' => 'DESC', 'paged' => $paged); $filters_html = $sortable_class = ''; $categories_slugs = null; if (!empty($attributes['category'])) { $categories_slugs = explode(',', $attributes['category']); $args['tax_query'] = array(array('taxonomy' => 'us_portfolio_category', 'field' => 'slug', 'terms' => $categories_slugs)); } if ($attributes['filters'] == 1 or $attributes['filters'] == 'yes') { $categories = get_terms('us_portfolio_category'); if (!empty($categories_slugs)) { foreach ($categories as $cat_id => $category) { if (!in_array($category->slug, $categories_slugs)) { unset($categories[$cat_id]); } } } if (count($categories) > 1) { $filters_html .= '<div class="w-filters"> <div class="w-filters-item active" data-filter="*">' . __('All', 'us') . '</div>'; foreach ($categories as $category) { $filters_html .= '<div class="w-filters-item" data-filter=".' . $category->slug . '">' . $category->name . '</div>'; } $filters_html .= '</div>'; } } if ($filters_html != '') { $sortable_class = ' type_sortable'; // We'll need the isotope script for this, but only once if (!wp_script_is('us-isotope', 'enqueued')) { wp_enqueue_script('us-isotope'); } } $with_indents_class = ($attributes['with_indents'] == 1 or $attributes['with_indents'] == 'yes') ? ' with_indents' : ''; $output = '<div class="w-portfolio ' . $attributes['style'] . ' align_' . $attributes['align'] . ' columns_' . $attributes['columns'] . ' ' . 'ratio_' . $attributes['ratio'] . $sortable_class . $with_indents_class . ' animate_revealgrid"> ' . $filters_html; $temp = $wp_query; $wp_query = null; $output .= '<div class="w-portfolio-list">'; $wp_query = new WP_Query($args); $portfolio_order_counter = 0; while ($wp_query->have_posts()) { $wp_query->the_post(); $portfolio_order_counter++; $item_categories_links = ''; $item_categories_classes = ''; $item_categories = get_the_terms(get_the_ID(), 'us_portfolio_category'); if (is_array($item_categories)) { foreach ($item_categories as $item_category) { $item_categories_links .= $item_category->name . ' / '; $item_categories_classes .= ' ' . $item_category->slug; } } if (function_exists('mb_strlen')) { if (mb_strlen($item_categories_links) > 0) { $item_categories_links = mb_substr($item_categories_links, 0, -2); } } else { if (strlen($item_categories_links) > 0) { $item_categories_links = substr($item_categories_links, 0, -2); } } $link_ref = $link_target = ''; $link = esc_url(apply_filters('the_permalink', get_permalink())); if (rwmb_meta('us_custom_link') != '') { $link = rwmb_meta('us_custom_link'); if (rwmb_meta('us_custom_link_blank') == 1) { $link_target = ' target="_blank"'; } } if (rwmb_meta('us_lightbox') == 1) { $img_id = get_post_thumbnail_id(); $link = wp_get_attachment_image_src($img_id, 'full'); $link = $link[0]; $link_ref = ' ref="magnificPopup"'; } $meta_html = ''; if ($attributes['meta'] == 'date') { $meta_html = get_the_date(); } elseif ($attributes['meta'] == 'category') { $meta_html = $item_categories_links; } $anchor_css = ''; if (rwmb_meta('us_title_bg_color') != '') { $anchor_css .= ' background-color: ' . rwmb_meta('us_title_bg_color') . ';'; } if (rwmb_meta('us_title_text_color') != '') { $anchor_css .= ' color: ' . rwmb_meta('us_title_text_color') . ';'; } if ($anchor_css != '') { $anchor_css = ' style="' . $anchor_css . '"'; } $output .= '<div class="w-portfolio-item order_' . $portfolio_order_counter . $item_categories_classes . ' animate_reveal"> <div class="w-portfolio-item-h"> <a class="w-portfolio-item-anchor"' . $link_target . $link_ref . ' href="' . $link . '"' . $anchor_css . '> <div class="w-portfolio-item-image">'; if (has_post_thumbnail()) { $output .= get_the_post_thumbnail(null, 'portfolio-list-' . $attributes['ratio'], array('class' => 'w-portfolio-item-image-first')); } else { $output .= '<img class="w-portfolio-item-image-first" src="' . get_template_directory_uri() . '/img/placeholder/500x500.gif" alt="">'; } $output .= ' </div> <div class="w-portfolio-item-meta"> <div class="w-portfolio-item-meta-h"> <h2 class="w-portfolio-item-title">' . the_title('', '', FALSE) . '</h2> <span class="w-portfolio-item-arrow"></span> <span class="w-portfolio-item-text">' . $meta_html . '</span> </div> </div> </a> </div> </div>'; } $output .= '</div>'; if ($attributes['pagination'] == 1 or $attributes['pagination'] == 'yes' or $attributes['pagination'] == 'regular') { if ($pagination = us_pagination()) { $output .= '<div class="w-portfolio-pagination"> <div class="g-pagination"> ' . $pagination . ' </div> </div>'; } } elseif ($attributes['pagination'] == 'ajax') { $max_num_pages = $wp_query->max_num_pages; if ($max_num_pages > 1) { $output .= '<div class="w-loadmore"> <a href="javascript:void(0);" id="grid_load_more" class="g-btn color_primary type_flat size_big"><span>' . __('Load More Items', 'us') . '</span></a> <div class="w-preloader type_2"></div> </div>'; $output .= '<script type="text/javascript"> var page = 1, max_page = ' . $max_num_pages . '; jQuery(document).ready(function(){ jQuery("#grid_load_more").click(function(){ jQuery(".w-loadmore").addClass("loading"); jQuery.ajax({ type: "POST", url: "' . admin_url("admin-ajax.php") . '", data: { action: "portfolioAjaxPagination", columns: "' . $attributes['columns'] . '", items: "' . $attributes['items'] . '", style: "' . $attributes['style'] . '", align: "' . $attributes['align'] . '", ratio: "' . $attributes['ratio'] . '", with_indents: "' . $attributes['with_indents'] . '", meta: "' . $attributes['meta'] . '", filters: "' . $attributes['filters'] . '", category: "' . $attributes['category'] . '", page: page+1 }, success: function(data, textStatus, XMLHttpRequest){ page++; var newItemsContainer = jQuery("<div>", {html:data}), portfolioList = jQuery(".w-portfolio-list");'; if ($filters_html != '') { $output .= ' newItemsContainer.imagesLoaded(function() { newItemsContainer.find("a[ref=magnificPopup][class!=direct-link]").magnificPopup({ type: "image", fixedContentPos: false }); var newItems = newItemsContainer.children(); var iso = portfolioList.data("isotope"), addedItems = iso.appended(newItems.appendTo(portfolioList)); newItems.revealGridMD(); jQuery(".w-loadmore").removeClass("loading").toggleClass("done", max_page <= page); });'; } else { $output .= ' newItemsContainer.find("a[ref=magnificPopup][class!=direct-link]").magnificPopup({ type: "image", fixedContentPos: false }); var newItems = newItemsContainer.children(); portfolioList.append(newItems); newItems.revealGridMD(); newItems.find(".w-portfolio-item-h").mdRipple(); jQuery(".w-loadmore").removeClass("loading").toggleClass("done", max_page <= page); '; } $output .= ' }, error: function(MLHttpRequest, textStatus, errorThrown){ jQuery(".w-loadmore").removeClass("loading"); } }); }); }); </script>'; } } $output .= '</div>'; wp_reset_postdata(); $wp_query = $temp; return $output; }
<?php $temp = $wp_query; $wp_query = null; $wp_query = new WP_Query(); $wp_query->query('paged=' . $paged . '&post_type=post'); while ($wp_query->have_posts()) { $wp_query->the_post(); $us_thumbnail_size = 'blog-grid'; get_template_part('templates/blog_single_post'); } ?> </div> </div> <?php if (function_exists('us_pagination') and $pagination = us_pagination()) { ?> <div class="w-blog-pagination"> <div class="g-pagination"> <?php echo $pagination; ?> </div> </div> <?php } else { ?> <div class="w-blog-pagination"> <div class="g-pagination"> <?php posts_nav_link(' ', '<span class="g-pagination-item to_prev">« Prev</span>', '<span class="g-pagination-item to_next">Next »</span>');
public function vc_portfolio($attributes, $content) { $attributes = shortcode_atts(array('pagination' => false, 'filters' => false, 'columns' => 3, 'category' => null, 'items' => null, 'ratio' => '3:2', 'no_indents' => false), $attributes); if (!in_array($attributes['columns'], array(2, 3, 4, 5))) { $attributes['columns'] = 3; } if (!in_array($attributes['ratio'], array('3:2', '4:3', '1:1'))) { $attributes['ratio'] = '3:2'; } $attributes['ratio'] = str_replace(':', '-', $attributes['ratio']); global $wp_query; $attributes['items'] = intval($attributes['items']); $portfolio_items = (is_integer($attributes['items']) and $attributes['items'] > 0) ? $attributes['items'] : $attributes['columns']; if ($attributes['pagination'] == 1 or $attributes['pagination'] == 'yes') { $paged = get_query_var('paged') ? get_query_var('paged') : 1; } else { $paged = 1; } $args = array('post_type' => 'us_portfolio', 'posts_per_page' => $portfolio_items, 'post_status' => 'publish', 'orderby' => 'date', 'order' => 'DESC', 'paged' => $paged); $filters_html = $sortable_class = ''; if (!empty($attributes['category'])) { $args['tax_query'] = array(array('taxonomy' => 'us_portfolio_category', 'field' => 'slug', 'terms' => $attributes['category'])); } elseif ($attributes['filters'] == 1 or $attributes['filters'] == 'yes') { $categories = get_terms('us_portfolio_category'); if (count($categories) > 1) { $filters_html .= '<div class="w-filters"> <div class="w-filters-h"> <div class="w-filters-list"> <div class="w-filters-item active"> <a class="w-filters-item-link" href="javascript:void(0);" data-filter="*">' . __('All', 'us') . '</a> </div>'; foreach ($categories as $category) { $filters_html .= '<div class="w-filters-item"> <a class="w-filters-item-link" href="javascript:void(0);" data-filter=".' . $category->slug . '">' . $category->name . '</a> </div>'; } $filters_html .= '</div> </div> </div>'; } } if ($filters_html != '') { $sortable_class = ' type_sortable'; } $no_indents_class = ($attributes['no_indents'] == 1 or $attributes['no_indents'] == 'yes') ? ' indents_none' : ''; $output = '<div class="w-portfolio columns_' . $attributes['columns'] . ' ratio_' . $attributes['ratio'] . $sortable_class . $no_indents_class . '"> <div class="w-portfolio-h">' . $filters_html; $temp = $wp_query; $wp_query = null; $output .= '<div class="w-portfolio-list"> <div class="w-portfolio-list-h">'; $wp_query = new WP_Query($args); $portfolio_order_counter = 0; while ($wp_query->have_posts()) { $wp_query->the_post(); $portfolio_order_counter++; $item_categories_links = ''; $item_categories_classes = ''; $item_categories = get_the_terms(get_the_ID(), 'us_portfolio_category'); if (is_array($item_categories)) { foreach ($item_categories as $item_category) { $item_categories_links .= $item_category->name . ' / '; $item_categories_classes .= ' ' . $item_category->slug; } } if (mb_strlen($item_categories_links) > 0) { $item_categories_links = mb_substr($item_categories_links, 0, -2); } $output .= '<div class="w-portfolio-item order_' . $portfolio_order_counter . $item_categories_classes . '"> <div class="w-portfolio-item-h"> <a class="w-portfolio-item-anchor" href="' . esc_url(apply_filters('the_permalink', get_permalink())) . '"> <div class="w-portfolio-item-image">'; if (has_post_thumbnail()) { $output .= get_the_post_thumbnail(null, 'portfolio-list-' . $attributes['ratio'], array('class' => 'w-portfolio-item-image-first')); } else { $output .= '<img class="w-portfolio-item-image-first" src="' . get_template_directory_uri() . '/img/placeholder/500x500.gif" alt="">'; } $additional_image = ''; if (rwmb_meta('us_additional_image') != '') { $additional_img_id = preg_replace('/[^\\d]/', '', rwmb_meta('us_additional_image')); $additional_img = wpb_getImageBySize(array('attach_id' => $additional_img_id, 'thumb_size' => 'portfolio-list-' . $attributes['ratio'])); if ($additional_img != NULL) { $additional_img = wp_get_attachment_image_src($additional_img_id, 'portfolio-list-' . $attributes['ratio']); $additional_image = $additional_img[0]; } } if ($additional_image != '') { $output .= '<img class="w-portfolio-item-image-second" src="' . $additional_image . '" alt="">'; } $output .= ' <div class="w-portfolio-item-meta"> <h2 class="w-portfolio-item-title">' . the_title('', '', FALSE) . '</h2> <span class="w-portfolio-item-arrow"></span> </div> </div> </a> </div> </div>'; } $output .= '</div> </div>'; if ($attributes['pagination'] == 1 or $attributes['pagination'] == 'yes') { if ($pagination = us_pagination()) { $output .= '<div class="w-portfolio-pagination"> <div class="g-pagination align_center"> ' . $pagination . ' </div> </div>'; } } $output .= '</div> </div>'; wp_reset_postdata(); $wp_query = $temp; return $output; }