Last updated on October 18, 2023

Divi blog post layout

Don’t know where to add this snippet? Read our guide: How to add code snippets.

Customize blog post layout with Divi code.

The Divi theme is a popular WordPress theme that allows you to create beautiful and customizable layouts for your blog posts. One of the key features of Divi is its ability to create unique and eye-catching blog post layouts. In this response, I will explain how you can achieve a custom blog post layout using Divi.

To create a custom blog post layout in Divi, you can use the Divi Builder, which is a powerful drag-and-drop page builder included with the theme. Here’s an example code snippet that demonstrates how you can use the Divi Builder to create a custom blog post layout:

function wpsnippets_custom_divi_blog_post_layout() {
    if ( is_singular( 'post' ) ) {
        // Get the current post ID
        $post_id = get_the_ID();

        // Check if the Divi Builder is enabled for the current post
        if ( et_pb_is_pagebuilder_used( $post_id ) ) {
            // Output the Divi Builder content
            echo do_shortcode( '[et_pb_section global_module="123"][/et_pb_section]' );
        } else {
            // Output the default blog post content
            the_content();
        }
    }
}
add_action( 'et_before_main_content', 'wpsnippets_custom_divi_blog_post_layout' );

In this code snippet, we’re using the et_before_main_content action hook to add our custom function wpsnippets_custom_divi_blog_post_layout() to the Divi theme. This function checks if the current page is a single blog post using the is_singular( 'post' ) conditional tag.

If the Divi Builder is enabled for the current post (checked using et_pb_is_pagebuilder_used()), we output the Divi Builder content using the do_shortcode() function. Otherwise, we output the default blog post content using the the_content() function.

This code snippet allows you to create a custom blog post layout using the Divi Builder for your WordPress website. It gives you the flexibility to design unique and visually appealing layouts for your blog posts, enhancing the overall user experience.

Examples

Example 1: Customizing the Divi Blog Post Layout

This use case demonstrates how to customize the layout of blog posts in the Divi theme using custom PHP functions and CSS.

function wpsnippets_custom_divi_blog_layout() {
    if ( is_single() && 'post' === get_post_type() ) {
        // Add custom CSS class to the blog post container
        add_filter( 'et_pb_post_main_wrapper_classes', function( $classes ) {
            $classes[] = 'custom-blog-layout';
            return $classes;
        } );

        // Remove default Divi post meta
        remove_action( 'et_before_post', 'et_divi_post_meta' );

        // Add custom post meta
        add_action( 'et_before_post', 'wpsnippets_custom_divi_post_meta' );
    }
}
add_action( 'wp', 'wpsnippets_custom_divi_blog_layout' );

function wpsnippets_custom_divi_post_meta() {
    // Display custom post meta
    echo '<div class="custom-post-meta">Posted on ' . get_the_date() . ' by ' . get_the_author() . '</div>';
}

This code example demonstrates how to customize the layout of blog posts in the Divi theme. It adds a custom CSS class to the blog post container, removes the default Divi post meta, and adds a custom post meta displaying the post date and author. The wpsnippets_custom_divi_blog_layout() function is hooked to the wp action to ensure it runs at the appropriate time.

Example 2: Adding a Featured Image to Divi Blog Posts

This use case demonstrates how to add a featured image to blog posts in the Divi theme using custom PHP functions and CSS.

function wpsnippets_add_featured_image_to_divi_blog() {
    if ( is_single() && 'post' === get_post_type() ) {
        // Add featured image above the post title
        add_action( 'et_before_post_title', 'wpsnippets_display_featured_image' );
    }
}
add_action( 'wp', 'wpsnippets_add_featured_image_to_divi_blog' );

function wpsnippets_display_featured_image() {
    if ( has_post_thumbnail() ) {
        echo '<div class="featured-image">';
        the_post_thumbnail();
        echo '</div>';
    }
}

This code example demonstrates how to add a featured image to blog posts in the Divi theme. It checks if the current page is a single blog post and if so, it adds the wpsnippets_display_featured_image() function to the et_before_post_title action hook. The wpsnippets_display_featured_image() function checks if the post has a featured image and if so, it displays it above the post title.

Example 3: Customizing the Blog Post Pagination in Divi

This use case demonstrates how to customize the pagination of blog posts in the Divi theme using custom PHP functions and CSS.

function wpsnippets_custom_divi_blog_pagination() {
    if ( is_home() || is_archive() ) {
        // Remove default Divi pagination
        remove_action( 'et_after_main_content', 'et_divi_pagenavigation' );

        // Add custom pagination
        add_action( 'et_after_main_content', 'wpsnippets_custom_divi_pagination' );
    }
}
add_action( 'wp', 'wpsnippets_custom_divi_blog_pagination' );

function wpsnippets_custom_divi_pagination() {
    global $wp_query;

    if ( $wp_query->max_num_pages > 1 ) {
        echo '<div class="custom-pagination">';
        echo paginate_links();
        echo '</div>';
    }
}

This code example demonstrates how to customize the pagination of blog posts in the Divi theme. It removes the default Divi pagination and adds a custom pagination using the wpsnippets_custom_divi_pagination() function. The function checks if there are multiple pages of blog posts and if so, it displays the pagination links. The wpsnippets_custom_divi_blog_pagination() function is hooked to the wp action to ensure it runs at the appropriate time.

Last updated on October 18, 2023. Originally posted on October 25, 2023.

Leave a Reply

Your email address will not be published. Required fields are marked *