Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save redb/20b6e1e999dc29d12a83896abc816e91 to your computer and use it in GitHub Desktop.
Save redb/20b6e1e999dc29d12a83896abc816e91 to your computer and use it in GitHub Desktop.
Shortcode to customise the size of the images for Divi's pagebuilder blog module
<?php
function remove_et_pb_blog() {
remove_shortcode( 'et_pb_blog', 'et_pb_blog' );
add_shortcode( 'et_pb_blog', 'wpt_pb_blog' );
}
add_action( 'init', 'remove_et_pb_blog' );
function wpt_pb_blog( $atts ) {
extract( shortcode_atts( array(
'module_id' => '',
'module_class' => '',
'fullwidth' => 'on',
'posts_number' => 10,
'include_categories' => '',
'meta_date' => 'M j, Y',
'show_thumbnail' => 'on',
'show_content' => 'off',
'show_author' => 'on',
'show_date' => 'on',
'show_categories' => 'on',
'show_pagination' => 'on',
'background_layout' => 'light',
'show_more' => 'off',
), $atts
) );
global $paged;
$container_is_closed = false;
if ( 'on' !== $fullwidth ){
wp_enqueue_script( 'jquery-masonry-3' );
}
$args = array( 'posts_per_page' => (int) $posts_number );
$et_paged = is_front_page() ? get_query_var( 'page' ) : get_query_var( 'paged' );
if ( is_front_page() ) {
$paged = $et_paged;
}
if ( '' !== $include_categories )
$args['cat'] = $include_categories;
if ( ! is_search() ) {
$args['paged'] = $et_paged;
}
ob_start();
query_posts( $args );
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
$post_format = get_post_format();
$thumb = '';
$width = 'on' === $fullwidth ? 150 : 400; //set these values to whatever you want (first is fullwidth, second is grid)
$width = (int) apply_filters( 'et_pb_blog_image_width', $width );
$height = 'on' === $fullwidth ? 150 : 250; //set these values to whatever you want (first is fullwidth, second is grid)
$height = (int) apply_filters( 'et_pb_blog_image_height', $height );
$classtext = 'on' === $fullwidth ? 'et_pb_post_main_image' : '';
$titletext = get_the_title();
$thumbnail = get_thumbnail( $width, $height, $classtext, $titletext, $titletext, false, 'Blogimage' );
$thumb = $thumbnail["thumb"];
$no_thumb_class = '' === $thumb || 'off' === $show_thumbnail ? ' et_pb_no_thumb' : '';
if ( in_array( $post_format, array( 'video', 'gallery' ) ) ) {
$no_thumb_class = '';
} ?>
<article id="post-<?php the_ID(); ?>" <?php post_class( 'et_pb_post' . $no_thumb_class ); ?>>
<?php
et_divi_post_format_content();
if ( ! in_array( $post_format, array( 'link', 'audio', 'quote' ) ) ) {
if ( 'video' === $post_format && false !== ( $first_video = et_get_first_video() ) ) :
printf(
'<div class="et_main_video_container">
%1$s
</div>',
$first_video
);
elseif ( 'gallery' === $post_format ) :
et_gallery_images();
elseif ( '' !== $thumb && 'on' === $show_thumbnail ) :
if ( 'on' !== $fullwidth ) echo '<div class="et_pb_image_container">'; ?>
<a href="<?php the_permalink(); ?>">
<?php print_thumbnail( $thumb, $thumbnail["use_timthumb"], $titletext, $width, $height ); ?>
</a>
<?php
if ( 'on' !== $fullwidth ) echo '</div> <!-- .et_pb_image_container -->';
endif;
} ?>
<?php if ( 'off' === $fullwidth || ! in_array( $post_format, array( 'link', 'audio', 'quote', 'gallery' ) ) ) { ?>
<?php if ( ! in_array( $post_format, array( 'link', 'audio' ) ) ) { ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php } ?>
<?php
if ( 'on' === $show_author || 'on' === $show_date || 'on' === $show_categories ) {
printf( '<p class="post-meta">%1$s %2$s %3$s %4$s %5$s</p>',
(
'on' === $show_author
? sprintf( __( 'by %s', 'Divi' ), et_get_the_author_posts_link() )
: ''
),
(
( 'on' === $show_author && 'on' === $show_date )
? ' | '
: ''
),
(
'on' === $show_date
? sprintf( __( '%s', 'Divi' ), get_the_date( $meta_date ) )
: ''
),
(
(( 'on' === $show_author || 'on' === $show_date ) && 'on' === $show_categories)
? ' | '
: ''
),
(
'on' === $show_categories
? get_the_category_list(', ')
: ''
)
);
}
if ( 'on' === $show_content ) {
global $more;
$more = null;
the_content( __( 'read more...', 'Divi' ) );
} else {
if ( has_excerpt() ) {
the_excerpt();
} else {
truncate_post( 270 );
}
$more = 'on' == $show_more ? sprintf( ' <a href="%1$s" class="more-link" >%2$s</a>' , esc_url( get_permalink() ), __( 'read more', 'Divi' ) ) : '';
echo $more;
} ?>
<?php } // 'off' === $fullwidth || ! in_array( $post_format, array( 'link', 'audio', 'quote', 'gallery' ?>
</article> <!-- .et_pb_post -->
<?php
} // endwhile
if ( 'on' === $show_pagination && ! is_search() ) {
echo '</div> <!-- .et_pb_posts -->';
$container_is_closed = true;
if ( function_exists( 'wp_pagenavi' ) )
wp_pagenavi();
else
get_template_part( 'includes/navigation', 'index' );
}
wp_reset_query();
} else {
get_template_part( 'includes/no-results', 'index' );
}
$posts = ob_get_contents();
ob_end_clean();
$class = " et_pb_bg_layout_{$background_layout}";
$output = sprintf(
'<div%5$s class="%1$s%3$s%6$s">
%2$s
%4$s',
( 'on' === $fullwidth ? 'et_pb_posts' : 'et_pb_blog_grid clearfix' ),
$posts,
esc_attr( $class ),
( ! $container_is_closed ? '</div> <!-- .et_pb_posts -->' : '' ),
( '' !== $module_id ? sprintf( ' id="%1$s"', esc_attr( $module_id ) ) : '' ),
( '' !== $module_class ? sprintf( ' %1$s', esc_attr( $module_class ) ) : '' )
);
if ( 'on' !== $fullwidth )
$output = sprintf( '<div class="et_pb_blog_grid_wrapper">%1$s</div>', $output );
return $output;
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment