예제 #1
0
    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">&laquo; Prev</span>', '<span class="g-pagination-item to_next">Next &raquo;</span>');
예제 #3
0
    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;
    }