Created
August 16, 2023 11:23
-
-
Save ahmedeshaan/22d2f4ef11f1f008cde214dacecbad10 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Changing Header | |
function my_new_shortcode_latest_from_blog($atts, $content = null, $tag = '' ) { | |
extract(shortcode_atts(array( | |
"_id" => 'row-'.rand(), | |
'style' => '', | |
'class' => '', | |
'visibility' => '', | |
// Layout | |
"columns" => '4', | |
"columns__sm" => '1', | |
"columns__md" => '', | |
'col_spacing' => '', | |
"type" => 'slider', // slider, row, masonery, grid | |
'width' => '', | |
'grid' => '1', | |
'grid_height' => '600px', | |
'grid_height__md' => '500px', | |
'grid_height__sm' => '400px', | |
'slider_nav_style' => 'reveal', | |
'slider_nav_position' => '', | |
'slider_nav_color' => '', | |
'slider_bullets' => 'false', | |
'slider_arrows' => 'true', | |
'auto_slide' => 'false', | |
'infinitive' => 'true', | |
'depth' => '', | |
'depth_hover' => '', | |
// posts | |
'posts' => '8', | |
'ids' => false, // Custom IDs | |
'cat' => '', | |
'category' => '', // Added for Flatsome v2 fallback | |
'excerpt' => 'visible', | |
'excerpt_length' => 15, | |
'offset' => '', | |
'orderby' => 'date', | |
'order' => 'DESC', | |
'tags' => '', | |
// Read more | |
'readmore' => '', | |
'readmore_color' => '', | |
'readmore_style' => 'outline', | |
'readmore_size' => 'small', | |
// div meta | |
'post_icon' => 'true', | |
'comments' => 'true', | |
'show_date' => 'badge', // badge, text | |
'badge_style' => '', | |
'show_category' => 'false', | |
//Title | |
'title_size' => 'large', | |
'title_style' => '', | |
// Box styles | |
'animate' => '', | |
'text_pos' => 'bottom', | |
'text_padding' => '', | |
'text_bg' => '', | |
'text_size' => '', | |
'text_color' => '', | |
'text_hover' => '', | |
'text_align' => 'center', | |
'image_size' => 'medium', | |
'image_width' => '', | |
'image_radius' => '', | |
'image_height' => '56%', | |
'image_hover' => '', | |
'image_hover_alt' => '', | |
'image_overlay' => '', | |
'image_depth' => '', | |
'image_depth_hover' => '', | |
), $atts)); | |
// Stop if visibility is hidden | |
if($visibility == 'hidden') return; | |
ob_start(); | |
$classes_box = array(); | |
$classes_image = array(); | |
$classes_text = array(); | |
// Fix overlay color | |
if($style == 'text-overlay'){ | |
$image_hover = 'zoom'; | |
} | |
$style = str_replace('text-', '', $style); | |
// Fix grids | |
if($type == 'grid'){ | |
if(!$text_pos) $text_pos = 'center'; | |
$columns = 0; | |
$current_grid = 0; | |
$grid = flatsome_get_grid($grid); | |
$grid_total = count($grid); | |
flatsome_get_grid_height($grid_height, $_id); | |
} | |
// Fix overlay | |
if($style == 'overlay' && !$image_overlay) $image_overlay = 'rgba(0,0,0,.25)'; | |
// Set box style | |
if($style) $classes_box[] = 'box-'.$style; | |
if($style == 'overlay') $classes_box[] = 'dark'; | |
if($style == 'shade') $classes_box[] = 'dark'; | |
if($style == 'badge') $classes_box[] = 'hover-dark'; | |
if($text_pos) $classes_box[] = 'box-text-'.$text_pos; | |
if($image_hover) $classes_image[] = 'image-'.$image_hover; | |
if($image_hover_alt) $classes_image[] = 'image-'.$image_hover_alt; | |
if($image_height) $classes_image[] = 'image-cover'; | |
// Text classes | |
if($text_hover) $classes_text[] = 'show-on-hover hover-'.$text_hover; | |
if($text_align) $classes_text[] = 'text-'.$text_align; | |
if($text_size) $classes_text[] = 'is-'.$text_size; | |
if($text_color == 'dark') $classes_text[] = 'dark'; | |
$css_args_img = array( | |
array( 'attribute' => 'border-radius', 'value' => $image_radius, 'unit' => '%' ), | |
array( 'attribute' => 'width', 'value' => $image_width, 'unit' => '%' ), | |
); | |
$css_image_height = array( | |
array( 'attribute' => 'padding-top', 'value' => $image_height), | |
); | |
$css_args = array( | |
array( 'attribute' => 'background-color', 'value' => $text_bg ), | |
array( 'attribute' => 'padding', 'value' => $text_padding ), | |
); | |
// Add Animations | |
if($animate) {$animate = 'data-animate="'.$animate.'"';} | |
$classes_text = implode(' ', $classes_text); | |
$classes_image = implode(' ', $classes_image); | |
$classes_box = implode(' ', $classes_box); | |
// Repeater styles | |
$repeater['id'] = $_id; | |
$repeater['tag'] = $tag; | |
$repeater['type'] = $type; | |
$repeater['class'] = $class; | |
$repeater['visibility'] = $visibility; | |
$repeater['style'] = $style; | |
$repeater['slider_style'] = $slider_nav_style; | |
$repeater['slider_nav_position'] = $slider_nav_position; | |
$repeater['slider_nav_color'] = $slider_nav_color; | |
$repeater['slider_bullets'] = $slider_bullets; | |
$repeater['auto_slide'] = $auto_slide; | |
$repeater['infinitive'] = $infinitive; | |
$repeater['row_spacing'] = $col_spacing; | |
$repeater['row_width'] = $width; | |
$repeater['columns'] = $columns; | |
$repeater['columns__md'] = $columns__md; | |
$repeater['columns__sm'] = $columns__sm; | |
$repeater['depth'] = $depth; | |
$repeater['depth_hover'] = $depth_hover; | |
$args = array( | |
'post_status' => 'publish', | |
'post_type' => 'post', | |
'offset' => $offset, | |
'cat' => $cat, | |
'tag__in' => $tags ? array_filter( array_map( 'trim', explode( ',', $tags ) ) ) : '', | |
'posts_per_page' => $posts, | |
'ignore_sticky_posts' => true, | |
'orderby' => $orderby, | |
'order' => $order, | |
); | |
// Added for Flatsome v2 fallback | |
if ( get_theme_mod('flatsome_fallback', 0) && $category ) { | |
$args['category_name'] = $category; | |
} | |
// If custom ids | |
if ( !empty( $ids ) ) { | |
$ids = explode( ',', $ids ); | |
$ids = array_map( 'trim', $ids ); | |
$args = array( | |
'post__in' => $ids, | |
'post_type' => array( | |
'post', | |
'featured_item', // Include for its tag archive listing. | |
), | |
'numberposts' => -1, | |
'orderby' => 'post__in', | |
'posts_per_page' => 9999, | |
'ignore_sticky_posts' => true, | |
); | |
// Include for search archive listing. | |
if ( is_search() ) { | |
$args['post_type'][] = 'page'; | |
} | |
} | |
$recentPosts = new WP_Query( $args ); | |
// Get repeater HTML. | |
get_flatsome_repeater_start($repeater); | |
while ( $recentPosts->have_posts() ) : $recentPosts->the_post(); | |
$col_class = array( 'post-item' ); | |
$show_excerpt = $excerpt; | |
if(get_post_format() == 'video') $col_class[] = 'has-post-icon'; | |
if($type == 'grid'){ | |
if($grid_total > $current_grid) $current_grid++; | |
$current = $current_grid-1; | |
$col_class[] = 'grid-col'; | |
if($grid[$current]['height']) $col_class[] = 'grid-col-'.$grid[$current]['height']; | |
if($grid[$current]['span']) $col_class[] = 'large-'.$grid[$current]['span']; | |
if($grid[$current]['md']) $col_class[] = 'medium-'.$grid[$current]['md']; | |
// Set image size | |
if($grid[$current]['size']) $image_size = $grid[$current]['size']; | |
// Hide excerpt for small sizes | |
if($grid[$current]['size'] == 'thumbnail') $show_excerpt = 'false'; | |
} | |
?><div class="col <?php echo implode(' ', $col_class); ?>" <?php echo $animate;?>> | |
<div class="col-inner"> | |
<div class="box <?php echo $classes_box; ?> box-blog-post has-hover"> | |
<?php if(has_post_thumbnail()) { ?> | |
<div class="box-image" <?php echo get_shortcode_inline_css($css_args_img); ?>> | |
<div class="<?php echo $classes_image; ?>" <?php echo get_shortcode_inline_css($css_image_height); ?>> | |
<a href="<?php the_permalink() ?>" class="plain" aria-label="<?php echo esc_attr( the_title() ); ?>"> | |
<?php the_post_thumbnail( $image_size ); ?> | |
</a> | |
<?php if($image_overlay){ ?><div class="overlay" style="background-color: <?php echo $image_overlay;?>"></div><?php } ?> | |
<?php if($style == 'shade'){ ?><div class="shade"></div><?php } ?> | |
</div> | |
<?php if($post_icon && get_post_format()) { ?> | |
<div class="absolute no-click x50 y50 md-x50 md-y50 lg-x50 lg-y50"> | |
<div class="overlay-icon"> | |
<i class="icon-play"></i> | |
</div> | |
</div> | |
<?php } ?> | |
</div> | |
<?php } ?> | |
<div class="box-text <?php echo $classes_text; ?>" <?php echo get_shortcode_inline_css($css_args); ?>> | |
<div class="box-text-inner blog-post-inner"> | |
<?php do_action('flatsome_blog_post_before'); ?> | |
<?php if($show_category !== 'false') { ?> | |
<p class="cat-label <?php if($show_category == 'label') echo 'tag-label'; ?> is-xxsmall op-7 uppercase"> | |
<?php | |
foreach((get_the_category()) as $cat) { | |
echo $cat->cat_name . ' '; | |
} | |
?> | |
</p> | |
<?php } ?> | |
<h3 class="post-title is-<?php echo $title_size; ?> <?php echo $title_style;?>"> | |
<a href="<?php the_permalink() ?>" class="plain"><?php the_title(); ?></a> | |
</h3> | |
<?php if((!has_post_thumbnail() && $show_date !== 'false') || $show_date == 'text') {?><div class="post-meta is-small op-8"><?php echo get_the_date(); ?></div><?php } ?> | |
<div class="is-divider"></div> | |
<?php if($show_excerpt !== 'false') { ?> | |
<p class="from_the_blog_excerpt <?php if($show_excerpt !== 'visible'){ echo 'show-on-hover hover-'.$show_excerpt; } ?>"><?php | |
$the_excerpt = get_the_excerpt(); | |
$excerpt_more = apply_filters( 'excerpt_more', ' [...]' ); | |
echo flatsome_string_limit_words($the_excerpt, $excerpt_length) . $excerpt_more; | |
?> | |
</p> | |
<?php } ?> | |
<?php if ( $comments == 'true' && comments_open() && '0' != get_comments_number() ) { ?> | |
<p class="from_the_blog_comments uppercase is-xsmall"> | |
<?php | |
$comments_number = get_comments_number( get_the_ID() ); | |
/* translators: %s: Comment count */ | |
printf( _n( '%s Comment', '%s Comments', $comments_number, 'flatsome' ), | |
number_format_i18n( $comments_number ) ) | |
?> | |
</p> | |
<?php } ?> | |
<?php if($readmore) { ?> | |
<a href="<?php echo get_the_permalink(); ?>" class="button <?php echo $readmore_color; ?> is-<?php echo $readmore_style; ?> is-<?php echo $readmore_size; ?> mb-0"> | |
<?php echo $readmore ;?> | |
</a> | |
<?php } ?> | |
<?php do_action('flatsome_blog_post_after'); ?> | |
</div> | |
</div> | |
<?php if(has_post_thumbnail() && ($show_date == 'badge' || $show_date == 'true')) {?> | |
<?php if(!$badge_style) $badge_style = get_theme_mod('blog_badge_style', 'outline'); ?> | |
<div class="badge absolute top post-date badge-<?php echo $badge_style; ?>"> | |
<div class="badge-inner"> | |
<span class="post-date-day"><?php echo get_the_time('d', get_the_ID()); ?></span><br> | |
<span class="post-date-month is-xsmall"><?php echo get_the_time('M', get_the_ID()); ?></span> | |
</div> | |
</div> | |
<?php } ?> | |
</div> | |
</div> | |
</div><?php endwhile; | |
wp_reset_query(); | |
// Get repeater end. | |
get_flatsome_repeater_end($atts); | |
$content = ob_get_contents(); | |
ob_end_clean(); | |
return $content; | |
} | |
//add a custom shortcode | |
add_action( 'init', 'my_add_shortcodes_for_changing_header' ); | |
function my_add_shortcodes_for_changing_header() | |
{ remove_shortcode("blog_posts", "shortcode_latest_from_blog"); | |
add_shortcode( 'blog_posts', 'my_new_shortcode_latest_from_blog' );} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment