Skip to content

Instantly share code, notes, and snippets.

@TomFrearson
Last active June 15, 2017 06:41
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save TomFrearson/d6fc0c1def975fed4290 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;
}
?>
@planetahuevo
Copy link

Hi,
I am trying to make this work with divi 2.4 and it seems to ignore the code.
Any ideas?
Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment