コード例 #1
0
ファイル: portfolio_grid.php プロジェクト: sergey-h/naman
    function vcex_portfolio_grid_shortcode($atts)
    {
        extract(shortcode_atts(array('unique_id' => '', 'term_slug' => '', 'include_categories' => '', 'exclude_categories' => '', 'posts_per_page' => '8', 'grid_style' => 'fit_columns', 'masonry_layout_mode' => '', 'filter_speed' => '', 'columns' => '4', 'order' => 'DESC', 'orderby' => 'date', 'orderby_meta_key' => '', 'filter' => '', 'center_filter' => 'no', 'thumb_link' => 'post', 'thumb_lightbox_gallery' => '', 'thumb_lightbox_title' => '', 'img_crop' => 'true', 'img_width' => '9999', 'img_height' => '9999', 'img_filter' => '', 'title' => 'true', 'title_link' => 'post', 'excerpt' => 'true', 'excerpt_length' => 30, 'custom_excerpt_trim' => '', 'read_more' => '', 'read_more_text' => __('read more', 'wpex'), 'pagination' => '', 'filter_content' => 'false', 'offset' => 0, 'taxonomy' => '', 'terms' => '', 'img_hover_style' => '', 'img_overlay_disable' => '', 'img_rendering' => '', 'all_text' => '', 'overlay_style' => '', 'content_heading_margin' => '', 'content_background' => '', 'content_margin' => '', 'content_font_size' => '', 'content_padding' => '', 'content_border' => '', 'content_color' => '', 'content_opacity' => '', 'content_heading_color' => '', 'content_heading_size' => '', 'content_alignment' => '', 'readmore_background' => '', 'readmore_color' => '', 'equal_heights_grid' => '', 'single_column_style' => '', 'entry_media' => ''), $atts));
        // Turn output buffer on
        ob_start();
        // Global $post
        global $post;
        // Don't create custom tax if tax doesn't exist
        if (taxonomy_exists('portfolio_category')) {
            // Include categories
            $include_categories = '' != $include_categories ? $include_categories : $term_slug;
            $include_categories = 'all' == $include_categories ? '' : $include_categories;
            $filter_cats_include = '';
            if ($include_categories) {
                $include_categories = explode(',', $include_categories);
                $filter_cats_include = array();
                foreach ($include_categories as $key) {
                    $key = get_term_by('slug', $key, 'portfolio_category');
                    $filter_cats_include[] = $key->term_id;
                }
            }
            // Exclude categories
            $filter_cats_exclude = '';
            if ($exclude_categories) {
                $exclude_categories = explode(',', $exclude_categories);
                if (!empty($exclude_categories) && is_array($exclude_categories)) {
                    $filter_cats_exclude = array();
                    foreach ($exclude_categories as $key) {
                        $key = get_term_by('slug', $key, 'portfolio_category');
                        $filter_cats_exclude[] = $key->term_id;
                    }
                    $exclude_categories = array('taxonomy' => 'portfolio_category', 'field' => 'slug', 'terms' => $exclude_categories, 'operator' => 'NOT IN');
                } else {
                    $exclude_categories = '';
                }
            }
            // Start Tax Query
            if (!empty($include_categories) && is_array($include_categories)) {
                $include_categories = array('taxonomy' => 'portfolio_category', 'field' => 'slug', 'terms' => $include_categories, 'operator' => 'IN');
            } else {
                $include_categories = '';
            }
        }
        // Meta key for orderby
        if ($orderby_meta_key && ('meta_value_num' == $orderby || 'meta_value' == $orderby)) {
            $meta_key = $orderby_meta_key;
        } else {
            $meta_key = NULL;
        }
        // Pagination variables
        $paged = NULL;
        $no_found_rows = true;
        if ('true' == $pagination) {
            global $paged;
            $paged = get_query_var('paged') ? get_query_var('paged') : 1;
            $no_found_rows = false;
        }
        // The Query
        $wpex_query = new WP_Query(array('post_type' => 'portfolio', 'posts_per_page' => $posts_per_page, 'offset' => $offset, 'order' => $order, 'orderby' => $orderby, 'meta_key' => $meta_key, 'filter_content' => $filter_content, 'paged' => $paged, 'tax_query' => array('relation' => 'AND', $include_categories, $exclude_categories), 'no_found_rows' => $no_found_rows));
        //Output posts
        if ($wpex_query->posts) {
            // Set unique ID
            $unique_id = $unique_id ? $unique_id : 'portfolio-' . rand(1, 100);
            // Image hard crop
            if ('9999' == $img_height) {
                $img_crop = false;
            } else {
                $img_crop = true;
            }
            // Is Isotope var
            if ('true' == $filter || 'masonry' == $grid_style || 'no_margins' == $grid_style) {
                $is_isotope = true;
            } else {
                $is_isotope = false;
            }
            // No need for masonry if not enough columns and filter is disabled
            if ('true' != $filter && 'masonry' == $grid_style) {
                $post_count = count($wpex_query->posts);
                if ($post_count <= $columns) {
                    $is_isotope = false;
                }
            }
            // Output script for inline JS for the Visual composer front-end builder
            if ($is_isotope) {
                vcex_front_end_grid_js('isotope');
            }
            // Display filter links
            if ('true' == $filter && taxonomy_exists('portfolio_category')) {
                // Get the terms for the filter
                $terms = get_terms('portfolio_category', array('include' => $filter_cats_include, 'exclude' => $filter_cats_exclude));
                // Display filter only if terms exist and there is more then 1
                if ($terms && count($terms) > '1') {
                    // Center filter links
                    $center_filter = 'yes' == $center_filter ? 'center' : '';
                    // All text
                    if ($all_text) {
                        $all_text = $all_text;
                    } else {
                        $all_text = __('All', 'wpex');
                    }
                    ?>
						<ul class="vcex-portfolio-filter filter-<?php 
                    echo $unique_id;
                    ?>
 vcex-filter-links <?php 
                    echo $center_filter;
                    ?>
 clr">
							<li class="active"><a href="#" data-filter="*"><span><?php 
                    echo $all_text;
                    ?>
</span></a></li>
							<?php 
                    foreach ($terms as $term) {
                        ?>
								<li><a href="#" data-filter=".cat-<?php 
                        echo $term->term_id;
                        ?>
"><?php 
                        echo $term->name;
                        ?>
</a></li>
							<?php 
                    }
                    ?>
						</ul><!-- .vcex-portfolio-filter -->
					<?php 
                }
                ?>
				<?php 
            }
            // Content Design
            $content_style = '';
            if ($content_background) {
                $content_style .= 'background:' . $content_background . ';';
            }
            if ($content_padding) {
                $content_style .= 'padding:' . $content_padding . ';';
            }
            if ($content_margin) {
                $content_style .= 'margin:' . $content_margin . ';';
            }
            if ($content_border) {
                $content_style .= 'border:' . $content_border . ';';
            }
            if ($content_font_size) {
                $content_style .= 'font-size:' . $content_font_size . ';';
            }
            if ($content_color) {
                $content_style .= 'color:' . $content_color . ';';
            }
            if ($content_opacity) {
                $content_style .= 'opacity:' . $content_opacity . ';';
            }
            if ($content_alignment) {
                $content_style .= 'text-align:' . $content_alignment . ';';
            }
            if ($content_style) {
                $content_style = 'style="' . $content_style . '"';
            }
            // Heading Design
            $heading_style = '';
            if ($content_heading_margin) {
                $heading_style .= 'margin: ' . $content_heading_margin . ';';
            }
            if ($content_heading_size) {
                $heading_style .= 'font-size: ' . $content_heading_size . ';';
            }
            if ($content_heading_color) {
                $heading_style .= 'color: ' . $content_heading_color . ';';
            }
            if ($heading_style) {
                $heading_style = 'style="' . $heading_style . '"';
            }
            // Readmore design
            if ('false' != $read_more) {
                $read_more = 'true';
                // Set readmore to true
                $readmore_style = '';
                if ($readmore_background) {
                    $readmore_style .= 'background: ' . $readmore_background . ';';
                }
                if ($readmore_color) {
                    $readmore_style .= 'color: ' . $readmore_color . ';';
                }
                if ($readmore_style) {
                    $readmore_style = 'style="' . $readmore_style . '"';
                }
            }
            // Set title to true if not false
            if ('false' != $title) {
                $title = 'true';
            }
            // Set excerpt to true if not false
            if ('false' != $excerpt) {
                $excerpt = 'true';
            }
            // Default excerpt length
            if ('' == $excerpt_length) {
                $excerpt_length = '30';
            } elseif ('false' == $excerpt) {
                $excerpt_length = '0';
            }
            // Trim custom Excerpts?
            if ('false' == $custom_excerpt_trim) {
                $custom_excerpt_trim = false;
            } else {
                $custom_excerpt_trim = true;
            }
            // Only use articles if title is enabled for HTML5 validity
            if ($title == 'true') {
                $main_element_type = 'article';
            } else {
                $main_element_type = 'div';
            }
            // Main wrap classes
            $wrap_classes = 'wpex-row vcex-portfolio-grid clr';
            // Equal heights class
            if ('1' != $columns && ('fit_columns' == $grid_style && 'true' == $equal_heights_grid)) {
                $equal_heights_grid = true;
            } else {
                $equal_heights_grid = false;
            }
            // Isotope classes
            if ($is_isotope) {
                $wrap_classes .= ' vcex-isotope-grid';
            }
            // No margins grid
            if ('no_margins' == $grid_style) {
                $wrap_classes .= ' vcex-no-margin-grid';
            }
            // Left thumbnail 1 column style
            if ('left_thumbs' == $single_column_style) {
                $wrap_classes .= ' left-thumbs';
            }
            // Lightbox classes
            if ('true' == $thumb_lightbox_gallery) {
                $wrap_classes .= ' lightbox-group';
                $lightbox_single_class = ' lightbox-group-item';
            } else {
                $lightbox_single_class = ' wpex-lightbox';
            }
            // Data
            $data = '';
            if ($is_isotope && 'true' == $filter) {
                if ('no_margins' != $grid_style && $masonry_layout_mode) {
                    $data .= ' data-layout-mode="' . $masonry_layout_mode . '"';
                }
                if ($filter_speed) {
                    $data .= ' data-transition-duration="' . $filter_speed . '"';
                }
            }
            if ('no_margins' == $grid_style && 'true' != $filter) {
                $data .= ' data-transition-duration="0.0"';
            }
            ?>
		
				<div class="<?php 
            echo $wrap_classes;
            ?>
" id="<?php 
            echo $unique_id;
            ?>
"<?php 
            echo $data;
            ?>
>
					<?php 
            // Define counter var to clear floats
            $count = $count_all = '';
            // Start loop
            foreach ($wpex_query->posts as $post) {
                setup_postdata($post);
                // Open match-height-row div for equal heights
                if ($equal_heights_grid && !$is_isotope) {
                    if (0 == $count) {
                        ?>
								<div class="match-height-row clr">
							<?php 
                    }
                    $count_all++;
                }
                // Post Data
                $post_id = $post->ID;
                $post_title = get_the_title();
                $post_title_esc = esc_attr(the_title_attribute('echo=0'));
                $post_permalink = get_permalink($post_id);
                // Add to the counter var
                $count++;
                // Add classes to the entries
                $entry_classes = 'portfolio-entry col';
                $entry_classes .= ' span_1_of_' . $columns;
                $entry_classes .= ' col-' . $count;
                if ($is_isotope) {
                    $entry_classes .= ' vcex-isotope-entry';
                }
                if ('no_margins' == $grid_style) {
                    $entry_classes .= ' vcex-no-margin-entry';
                }
                if (taxonomy_exists('portfolio_category')) {
                    $post_terms = get_the_terms($post, 'portfolio_category');
                    if ($post_terms) {
                        foreach ($post_terms as $post_term) {
                            $entry_classes .= ' cat-' . $post_term->term_id;
                        }
                    }
                }
                ?>
						<<?php 
                echo $main_element_type;
                ?>
 class="<?php 
                echo $entry_classes;
                ?>
">
							<?php 
                // Entry Media
                if ('false' != $entry_media) {
                    // Video
                    if (function_exists('wpex_get_portfolio_featured_video_url') && wpex_get_portfolio_featured_video_url()) {
                        ?>
									<div class="portfolio-entry-media clr">
										<?php 
                        wpex_portfolio_post_video();
                        ?>
									</div>
								<?php 
                    } elseif (has_post_thumbnail()) {
                        // Get cropped image
                        $cropped_img = wpex_image_resize(wp_get_attachment_url(get_post_thumbnail_id()), intval($img_width), intval($img_height), $img_crop, 'array');
                        // Filter style
                        $img_filter_class = $img_filter ? 'vcex-' . $img_filter : '';
                        // Media classes
                        $media_classes = $img_filter_class;
                        if ($img_hover_style) {
                            $media_classes .= ' vcex-img-hover-parent vcex-img-hover-' . $img_hover_style;
                        }
                        if ($img_rendering) {
                            $media_classes .= ' vcex-image-rendering-' . $img_rendering;
                        }
                        if ($overlay_style) {
                            $media_classes .= ' ' . wpex_overlay_classname($overlay_style);
                        }
                        ?>
									<div class="portfolio-entry-media <?php 
                        echo $media_classes;
                        ?>
">
										<?php 
                        // No link
                        if ('nowhere' == $thumb_link) {
                            ?>
											<img src="<?php 
                            echo $cropped_img['url'];
                            ?>
" alt="<?php 
                            echo $post_title;
                            ?>
" class="portfolio-entry-img" height="<?php 
                            echo $cropped_img['height'];
                            ?>
" width="<?php 
                            echo $cropped_img['width'];
                            ?>
" />
										<?php 
                            // Lightbox
                        } elseif ('lightbox' == $thumb_link) {
                            // Display lightbox title
                            $data = '';
                            if ('true' == $thumb_lightbox_title) {
                                $data = ' data-title="' . $post_title_esc . '"';
                            }
                            ?>
												<a href="<?php 
                            echo wp_get_attachment_url(get_post_thumbnail_id());
                            ?>
" title="<?php 
                            echo $post_title_esc;
                            ?>
" class="portfolio-entry-media-link<?php 
                            echo $lightbox_single_class;
                            ?>
"<?php 
                            echo $data;
                            ?>
>
												<img src="<?php 
                            echo $cropped_img['url'];
                            ?>
" alt="<?php 
                            echo $post_title_esc;
                            ?>
" class="portfolio-entry-img" height="<?php 
                            echo $cropped_img['height'];
                            ?>
" width="<?php 
                            echo $cropped_img['width'];
                            ?>
" />
										<?php 
                            // Standarad post link
                        } else {
                            ?>
												<a href="<?php 
                            echo $post_permalink;
                            ?>
" title="<?php 
                            echo $post_title_esc;
                            ?>
" class="portfolio-entry-media-link">
												<img src="<?php 
                            echo $cropped_img['url'];
                            ?>
" alt="<?php 
                            echo $post_title_esc;
                            ?>
" class="portfolio-entry-img" height="<?php 
                            echo $cropped_img['height'];
                            ?>
" width="<?php 
                            echo $cropped_img['width'];
                            ?>
" />
										<?php 
                        }
                        ?>
											
										<?php 
                        // Close link and output overlay code
                        if ('nowhere' != $thumb_link) {
                            // Inner Overlay
                            if ($overlay_style) {
                                wpex_overlay('inside_link', $overlay_style);
                            }
                            // Close links
                            echo '</a>';
                            // Outside Overlay
                            if ($overlay_style) {
                                wpex_overlay('outside_link', $overlay_style);
                            }
                        }
                        ?>
									</div><!-- .portfolio-entry-media -->
								<?php 
                    }
                    ?>
							<?php 
                }
                ?>
							<?php 
                // Display content if there is either a title or excerpt
                if ('true' == $title || 'true' == $excerpt) {
                    ?>
								<div class="portfolio-entry-details clr" <?php 
                    echo $content_style;
                    ?>
>
									<?php 
                    // Equal height div
                    if ($equal_heights_grid && !$is_isotope) {
                        ?>
									<div class="match-height-content">
									<?php 
                    }
                    // Display the title
                    if ('false' != $title) {
                        ?>
										<h2 class="portfolio-entry-title" <?php 
                        echo $heading_style;
                        ?>
>
											<?php 
                        // Link title to post
                        if ('post' == $title_link) {
                            ?>
												<a href="<?php 
                            echo $post_permalink;
                            ?>
" title="<?php 
                            echo $post_title_esc;
                            ?>
" <?php 
                            echo $heading_style;
                            ?>
><?php 
                            echo $post_title;
                            ?>
</a>
											<?php 
                        } elseif ('lightbox' == $title_link) {
                            ?>
												<a href="<?php 
                            echo wp_get_attachment_url(get_post_thumbnail_id());
                            ?>
" title="<?php 
                            echo $post_title_esc;
                            ?>
" class="wpex-lightbox" <?php 
                            echo $heading_style;
                            ?>
><?php 
                            echo $post_title;
                            ?>
</a>
											<?php 
                        } else {
                            echo $post_title;
                        }
                        ?>
										</h2>
									<?php 
                    }
                    // Display excerpt and readmore
                    if ('true' == $excerpt || 'true' == $read_more) {
                        ?>
										<div class="portfolio-entry-excerpt clr">
											<?php 
                        // Display full content
                        if ('9999' == $excerpt_length) {
                            the_content();
                        } elseif (function_exists('wpex_excerpt')) {
                            $args = array('post_id' => $post_id, 'length' => intval($excerpt_length), 'trim_custom_excerpts' => $custom_excerpt_trim);
                            wpex_excerpt($args);
                        } else {
                            the_excerpt();
                        }
                        // Display Readmore
                        if ('false' != $read_more) {
                            // Read more string fallback
                            if ('' == $read_more_text) {
                                $read_more_text = __('read more', 'wpex');
                            }
                            ?>
												<a href="<?php 
                            echo $post_permalink;
                            ?>
" title="<?php 
                            echo $read_more_text;
                            ?>
" rel="bookmark" class="vcex-readmore theme-button" <?php 
                            echo $readmore_style;
                            ?>
>
													<?php 
                            echo $read_more_text;
                            ?>
 <span class="vcex-readmore-rarr"><?php 
                            echo wpex_element('rarr');
                            ?>
</span>
												</a>
											<?php 
                        }
                        ?>
										</div>
									<?php 
                    }
                    // Close Equal height div
                    if ($equal_heights_grid && !$is_isotope) {
                        ?>
										</div>
									<?php 
                    }
                    ?>
								</div><!-- .portfolio-entry-details -->
							<?php 
                }
                ?>
						</<?php 
                echo $main_element_type;
                ?>
><!-- .portfolio-entry -->
					<?php 
                // Check if counter equal columns
                if ($count == $columns) {
                    // Close equal height row
                    if ($equal_heights_grid && !$is_isotope) {
                        echo '</div><!-- .match-height-row -->';
                    }
                    // Reset counter
                    $count = '';
                }
                // End foreach
            }
            // Make sure match-height-row is closed
            if ($equal_heights_grid && !$is_isotope) {
                if ('4' == $columns && $count_all % 4 != 0) {
                    echo '</div><!-- .match-height-row -->';
                }
                if ('3' == $columns && $count_all % 3 != 0) {
                    echo '</div><!-- .match-height-row -->';
                }
                if ('2' == $columns && $count_all % 2 != 0) {
                    echo '</div><!-- .match-height-row -->';
                }
            }
            ?>
				</div><!-- .vcex-portfolio-grid -->
				
				<?php 
            // Paginate Posts
            if ('true' == $pagination) {
                wpex_pagination($wpex_query);
            }
            // Reset the WP query
            wp_reset_postdata();
            // End has posts check
        }
        // Return outbut buffer
        return ob_get_clean();
    }
コード例 #2
0
 * @author		Alexander Clarke
 * @copyright	Copyright (c) 2014, Symple Workz LLC
 * @link		http://www.wpexplorer.com
 * @since		Total 1.6.0
 * @version		1.0.0
 */
// Exit if accessed directly
if (!defined('ABSPATH')) {
    exit;
}
// If the portfolio post has a video display it
if (wpex_get_portfolio_featured_video_url()) {
    ?>

	<?php 
    wpex_portfolio_post_video();
    ?>

<?php 
    // Otherwise display thumbnail
} elseif (has_post_thumbnail()) {
    ?>
	
	<?php 
    // Get post data
    $esc_title = esc_attr(the_title_attribute('echo=0'));
    // Get thumbnail data
    $wpex_image = wpex_image('array');
    $image_url = $wpex_image['url'];
    $image_width = $wpex_image['width'];
    $image_height = $wpex_image['height'];