Entry header, first paragraph, featured Image above the remaining content and sidebar on single Posts in Genesis - Method 1. https://sridharkatakam.com/entry-header-first-paragraph-featured-image-above-the-remaining-content-and-sidebar-on-single-posts-in-genesis/
// Register a custom image size for featured images on single Posts | |
add_image_size( 'post-single', 1080, 270, true ); |
<?php | |
// Add "has-featured-image" body class if the post has a featured image | |
add_filter( 'body_class', 'sk_single_post_body_class' ); | |
/** | |
* Adds a css class to the body element | |
* | |
* @param array $classes the current body classes | |
* @return array $classes modified classes | |
*/ | |
function sk_single_post_body_class( $classes ) { | |
if ( has_post_thumbnail() ) { | |
$classes[] = 'has-featured-image'; | |
} | |
return $classes; | |
} | |
add_action( 'get_header', 'sk_layout' ); | |
function sk_layout() { | |
// if the post does not have a featured image, abort. | |
if ( ! has_post_thumbnail() ) { | |
return; | |
} | |
// force full width content | |
add_filter( 'genesis_pre_get_option_site_layout', '__genesis_return_full_width_content' ); | |
// insert featured image and Primary sidebar | |
add_filter( 'the_content', sk_featured_image_sidebar, 20 ); | |
} | |
// Function to insert featured image and Primary sidebar | |
function sk_featured_image_sidebar( $content ) { | |
// store the Primary sidebar's output in a variable using output buffering | |
ob_start(); | |
get_sidebar(); // include the sidebar.php template file | |
$sidebar = ob_get_clean(); | |
// insert featured image and Primary sidebar after the first paragraph | |
$content = preg_replace( '/<\/p>/', '</p>' . get_the_post_thumbnail( $post->ID, 'post-single' ) . $sidebar, $content, 1 ); | |
return $content; | |
} | |
genesis(); |
.attachment-post-single { | |
margin-bottom: 22px; | |
} | |
.single-post.has-featured-image .sidebar-primary { | |
margin-left: 30px; | |
} | |
.single-post.has-featured-image .sidebar .widget { | |
padding-top: 0; | |
padding-bottom: 0; | |
} | |
.entry-content .sidebar ul { | |
margin-left: 0; | |
} | |
.entry-content .sidebar ul > li { | |
list-style-type: none; | |
list-style-image: none; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment