Skip to content

Instantly share code, notes, and snippets.

@cre8tivediva
Created August 9, 2014 19:54
Show Gist options
  • Save cre8tivediva/18cc4958e9dc0f3aa4e8 to your computer and use it in GitHub Desktop.
Save cre8tivediva/18cc4958e9dc0f3aa4e8 to your computer and use it in GitHub Desktop.
C8D Front Page Code
<?php
/**
* This file adds the Home Page to the Tidy Theme.
*/
add_action( 'genesis_meta', 'tidy_home_genesis_meta' );
/**
* Add widget support for homepage. If no widgets active, display the default loop.
*
*/
function tidy_home_genesis_meta() {
if ( is_active_sidebar( 'home-top' ) || is_active_sidebar( 'home-welcome' ) || is_active_sidebar( 'home-middle-left' ) || is_active_sidebar( 'home-middle-right' ) || is_active_sidebar( 'home-cta' ) || is_active_sidebar( 'home-bottom' ) ) {
// Force content-sidebar layout setting
add_filter( 'genesis_site_layout', '__genesis_return_full_width_content' );
// Add tidy-home body class
add_filter( 'body_class', 'tidy_body_class' );
}
if ( is_active_sidebar( 'home-top' ) ) {
// Add excerpt length filter
add_action( 'genesis_before_loop', 'tidy_top_excerpt_length' );
// Add homepage widgets
add_action( 'genesis_before_loop', 'tidy_homepage_top_widgets' );
// Remove excerpt length filter
add_action( 'genesis_before_loop', 'tidy_remove_top_excerpt_length' );
}
if ( is_active_sidebar( 'home-middle-left' ) || is_active_sidebar( 'home-middle-right' ) || is_active_sidebar( 'home-cta' ) || is_active_sidebar( 'home-bottom' ) ) {
// Add homepage widgets
add_action( 'genesis_loop', 'tidy_homepage_widgets' );
}
}
function tidy_body_class( $classes ) {
$classes[] = 'tidy-home';
return $classes;
}
function tidy_excerpt_length( $length ) {
return 25; // pull first 50 words
}
function tidy_top_excerpt_length() {
add_filter( 'excerpt_length', 'tidy_excerpt_length' );
}
function tidy_remove_top_excerpt_length() {
remove_filter( 'excerpt_length', 'tidy_excerpt_length' );
}
function tidy_homepage_top_widgets() {
echo '<div class="home-feature">';
genesis_widget_area( 'home-top', array(
'before' => '<div class="home-top widget-area">',
'after' => '</div>',
) );
genesis_widget_area( 'home-welcome', array(
'before' => '<div class="home-welcome widget-area">',
'after' => '</div>',
) );
echo '</div>';
echo '<div style="clear:both;"></div>';
genesis_widget_area( 'home-cta-top', array(
'before' => '<div class="home-cta-top widget-area">',
'after' => '</div>',
) );
}
function tidy_homepage_widgets() {
if ( is_active_sidebar( 'home-middle-left' ) || is_active_sidebar( 'home-middle-right' ) ) {
echo '<div class="home-middle">';
genesis_widget_area( 'home-middle-left', array(
'before' => '<div class="home-middle-left widget-area">',
'after' => '</div>',
) );
genesis_widget_area( 'home-middle-right', array(
'before' => '<div class="home-middle-right widget-area">',
'after' => '</div>',
) );
echo '</div>';
}
genesis_widget_area( 'home-cta', array(
'before' => '<div class="home-cta widget-area">',
'after' => '</div>',
) );
genesis_widget_area( 'home-bottom', array(
'before' => '<div class="home-bottom widget-area">',
'after' => '</div>',
) );
}
genesis();
@cre8tivediva
Copy link
Author

Brad Potter had me just change front-page.php to home.php and it works the way I want and the way the client wants it. Not sure why the functionality would be so drastically different between the two though. Thank you for taking time out to look at this for me. I appreciate it.

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