This tutorial provides 2 ways to add a widget area which displays on both single posts and any page using the genesis blog page template.
Here’s the demo video:
1st Solution
Step 1 : Add the following PHP code to the end of your child themes functions.php file:
genesis_register_sidebar( array(
'id' => 'blogandsingle-page-widget',
'name' => __( 'Blog & Single Widget' ),
) );
add_action( 'genesis_before_loop', 'single_post_widget' );
function single_post_widget() {
if ( is_active_sidebar( 'blogandsingle-page-widget' ) && is_singular( 'post' ) ) {
genesis_widget_area( 'blogandsingle-page-widget', array(
'before' => '<div class="new-widget widget-area">',
'after' => '</div>',
) );
}
}
Step 2 : Create a custom page_blog.php file in your child themes root directory and add the following code to the file.
Note: You’ll also need to add a opening php tag to the very first line of the file.
/**
* @link https://wp.me/p1lTu0-gN7
* @author Brad Dalton
*/
/*
Template Name: Blog With Widget
*/
add_action( 'genesis_before_loop', 'blog_page_widget' );
function blog_page_widget() {
if ( is_active_sidebar( 'blogandsingle-page-widget' ) ) {
genesis_widget_area( 'blogandsingle-page-widget', array(
'before' => '<div class="new-widget widget-area">',
'after' => '</div>',
) );
}
}
genesis();
This tutorial has been written in response to this question from a members of the Genesis community:
can anyone help me with conditions for adding the same widget on single posts and the blog page? I can get it to work on single posts but have no luck in adding a condition to get it appear on the blog page
Here’s the 2nd solution for logged in members:
Leave a Reply