示例#1
0
    function grve_blog_shortcode($atts, $content)
    {
        $output = $allow_filter = $el_class = '';
        extract(shortcode_atts(array('categories' => '', 'blog_style' => 'large-media', 'blog_mode' => 'no-border-mode', 'blog_image_mode' => '', 'blog_image_prio' => '', 'blog_columns' => '4', 'auto_excerpt' => '', 'excerpt_length' => '55', 'excerpt_more' => '', 'hide_comments' => '', 'posts_per_page' => '10', 'order_by' => 'date', 'order' => 'DESC', 'disable_pagination' => '', 'blog_filter' => '', 'blog_filter_align' => 'left', 'filter_order_by' => '', 'filter_order' => 'ASC', 'item_spinner' => 'no', 'items_per_page' => '4', 'slideshow_speed' => '3000', 'navigation_type' => '1', 'navigation_color' => 'light', 'pause_hover' => 'no', 'margin_bottom' => '', 'el_class' => ''), $atts));
        $style = grve_osmosis_vce_build_margin_bottom_style($margin_bottom);
        $blog_classes = array('grve-element');
        array_push($blog_classes, grve_osmosis_vce_get_blog_class($blog_style));
        if (!empty($el_class)) {
            array_push($blog_classes, $el_class);
        }
        if ('border-mode' == $blog_mode && ('masonry' == $blog_style || 'grid' == $blog_style)) {
            array_push($blog_classes, 'grve-border-mode');
        }
        $blog_class_string = implode(' ', $blog_classes);
        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' => 'post', 'post_status' => 'publish', 'posts_per_page' => $posts_per_page, 'cat' => $categories, 'paged' => $paged, 'ignore_sticky_posts' => 1, 'orderby' => $order_by, 'order' => $order);
        $query = new WP_Query($args);
        $blog_category_ids = array();
        if (!empty($categories)) {
            $blog_category_ids = explode(",", $categories);
        }
        if ('carousel' != $blog_style) {
            $allow_filter = 'yes';
        }
        $category_prefix = '.category-';
        ob_start();
        if ($query->have_posts()) {
            ?>
		<div class="<?php 
            echo esc_attr($blog_class_string);
            ?>
" style="<?php 
            echo $style;
            ?>
" <?php 
            grve_osmosis_vce_print_blog_data($blog_style, $blog_columns, $item_spinner);
            ?>
>
<?php 
            //Category Filter
            if ('yes' == $blog_filter && 'yes' == $allow_filter) {
                $category_filter_list = array();
                $category_filter_array = array();
                $all_string = apply_filters('grve_vce_blog_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 ($blog_categories = get_the_terms(get_the_ID(), 'category')) {
                        foreach ($blog_categories as $category_term) {
                            $category_filter_add = false;
                            if (!in_array($category_term->term_id, $category_filter_list)) {
                                if (!empty($blog_category_ids)) {
                                    if (in_array($category_term->term_id, $blog_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($blog_filter_align);
                    ?>
">
					<ul>
						<?php 
                    echo $category_filter_string;
                    ?>
					</ul>
				</div>
		<?php 
                }
            }
            if ('large-media' == $blog_style || 'small-media' == $blog_style) {
                ?>
			<div class="grve-standard-container">
<?php 
            } else {
                if ('carousel' == $blog_style) {
                    $disable_pagination = 'yes';
                    $data_string = ' data-items="' . esc_attr($items_per_page) . '" data-slider-speed="' . esc_attr($slideshow_speed) . '" data-slider-pause="' . esc_attr($pause_hover) . '"';
                    ?>
			<?php 
                    if (0 != $navigation_type) {
                        ?>
			<div class="grve-carousel-navigation grve-<?php 
                        echo $navigation_color;
                        ?>
" data-navigation-type="<?php 
                        echo $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"<?php 
                    echo $data_string;
                    ?>
>
<?php 
                } else {
                    ?>
			<div class="grve-isotope-container">
<?php 
                }
            }
            $grve_isotope_start = $grve_isotope_end = '';
            if ('large-media' != $blog_style && 'small-media' != $blog_style) {
                $grve_isotope_start = '<div class="grve-isotope-item-inner">';
                $grve_isotope_end = '</div>';
            }
            while ($query->have_posts()) {
                $query->the_post();
                $post_format = get_post_format();
                if ('link' == $post_format || 'quote' == $post_format) {
                    $grve_post_class = grve_osmosis_vce_get_post_class($blog_style, 'grve-label-post');
                } else {
                    $grve_post_class = grve_osmosis_vce_get_post_class($blog_style);
                }
                if ('carousel' == $blog_style) {
                    ?>
				<div class="grve-carousel-item">
					<article class="format-gallery grve-post-item" itemscope itemType="http://schema.org/BlogPosting">
						<?php 
                    grve_osmosis_vce_print_carousel_media();
                    ?>
						<div class="grve-content">
							<?php 
                    grve_osmosis_vce_print_post_title($blog_style, $post_format);
                    ?>
							<div class="grve-caption">
								<?php 
                    grve_osmosis_vce_print_post_date();
                    ?>
							</div>
						</div>
					</article>
				</div>
<?php 
                } else {
                    ?>
			<article id="post-<?php 
                    the_ID();
                    ?>
" <?php 
                    post_class($grve_post_class);
                    ?>
 itemscope itemType="http://schema.org/BlogPosting">
				<?php 
                    echo $grve_isotope_start;
                    ?>
					<?php 
                    grve_osmosis_vce_print_post_feature_media($blog_style, $post_format, $blog_image_mode, $blog_image_prio);
                    ?>

					<?php 
                    if ('link' != $post_format && 'quote' != $post_format) {
                        ?>
						<div class="grve-post-content">
							<?php 
                        grve_osmosis_vce_print_post_title($blog_style, $post_format);
                        ?>
							<div class="grve-post-meta">
								<?php 
                        grve_osmosis_vce_print_post_author_by($blog_style);
                        ?>
								<?php 
                        grve_osmosis_vce_print_post_date();
                        ?>
								<?php 
                        if (function_exists('grve_print_like_counter')) {
                            grve_print_like_counter();
                        }
                        ?>
							</div>
							<?php 
                        grve_osmosis_vce_print_post_excerpt($blog_style, $post_format, $auto_excerpt, $excerpt_length, $excerpt_more);
                        ?>
						</div>
					<?php 
                    } else {
                        ?>
						<?php 
                        grve_osmosis_vce_print_post_title($blog_style, $post_format);
                        ?>
					<?php 
                    }
                    ?>

				<?php 
                    echo $grve_isotope_end;
                    ?>
			</article>

<?php 
                }
            }
            ?>
			</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();
    }
示例#2
0
/**
 * Prints excerpt depending on the blog style and post format
 */
function grve_osmosis_vce_print_post_title($blog_style, $post_format)
{
    global $allowedposttags;
    $mytags = $allowedposttags;
    $title_size = '5';
    if ('large-media' == $blog_style || 'small-media' == $blog_style) {
        $title_size = '4';
    }
    if ('carousel' == $blog_style) {
        $title_size = '6';
    }
    switch ($post_format) {
        case 'link':
            if ('carousel' == $blog_style) {
                the_title('<a ' . grve_osmosis_vce_print_post_link('link') . ' rel="bookmark"><h' . $title_size . ' class="grve-post-title" itemprop="name headline">', '</h' . $title_size . '></a>');
            } else {
                the_title('<h4 class="grve-hidden" itemprop="name headline">', '</h4>');
                unset($mytags['a']);
                unset($mytags['img']);
                $content = wp_kses(get_the_content(), $mytags);
                echo '<a ' . grve_osmosis_vce_print_post_link('link') . ' rel="bookmark">';
                echo '<div class="grve-post-icon"></div>';
                echo '<p class="grve-subtitle" itemprop="articleBody">' . $content . '</p>';
                echo '</a>';
            }
            break;
        case 'quote':
            if ('carousel' == $blog_style) {
                the_title('<a href="' . esc_url(get_permalink()) . '" rel="bookmark"><h' . $title_size . ' class="grve-post-title" itemprop="name headline">', '</h' . $title_size . '></a>');
            } else {
                the_title('<h4 class="grve-hidden" itemprop="name headline">', '</h4>');
                unset($mytags['a']);
                unset($mytags['img']);
                unset($mytags['blockquote']);
                $content = wp_kses(get_the_content(), $mytags);
                echo '<a href="' . esc_url(get_permalink()) . '" rel="bookmark">';
                grve_osmosis_vce_print_post_date();
                echo '<div class="grve-post-icon"></div>';
                echo '<p class="grve-subtitle" itemprop="articleBody">' . $content . '</p>';
                echo '</a>';
            }
            break;
        default:
            the_title('<a href="' . esc_url(get_permalink()) . '" rel="bookmark"><h' . $title_size . ' class="grve-post-title" itemprop="name headline">', '</h' . $title_size . '></a>');
            break;
    }
}