This repository has been archived by the owner. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update for sidebars and layout builder
- Loading branch information
Showing
2 changed files
with
300 additions
and
261 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,101 +1,140 @@ | ||
<?php | ||
|
||
/** | ||
* Register widget area. | ||
* | ||
* @link http://codex.wordpress.org/Function_Reference/register_sidebar | ||
*/ | ||
|
||
if ( function_exists('register_sidebar') ) { | ||
register_sidebar(array( | ||
'name' => __( 'Sidebar', 'theme_text_domain' ), | ||
'id' => 'sidebar', | ||
'description' => 'Appears with Archives, Search Results, the Blog page template, and when viewing single posts.', | ||
'class' => 'sidebar', | ||
'before_widget' => '<aside id="%1$s" class="widget %2$s">', | ||
'after_widget' => '</aside>', | ||
'before_title' => '<div class="widget-head"><h2 class="widget-title">', | ||
'after_title' => '</h2></div>' | ||
)); | ||
|
||
register_sidebar( array( | ||
'name' => __( 'Mega Footer' ), | ||
'id' => 'mega-footer', | ||
'description' => 'Limited to 6 widgets. Will appear at the bottom of every page in the site.', | ||
'before_widget' => '<aside id="%1$s" class="widget %2$s">', | ||
'after_widget' => '</aside>', | ||
'before_title' => '<div class="widget-head"><h2 class="widget-title">', | ||
'after_title' => '</h2></div>' | ||
) ); | ||
|
||
for($i=0; $i<60; $i++){ | ||
register_sidebar(array( | ||
'name' => __( 'Home '.$i, 'theme_text_domain' ), | ||
'id' => 'home'.$i, | ||
'class' => 'sidebar', | ||
'before_widget' => '<aside id="%1$s" class="widget %2$s">', | ||
'after_widget' => '</aside>', | ||
'before_title' => '<div class="widget-head"><h2 class="widget-title">', | ||
'after_title' => '</h2></div>' | ||
)); | ||
} | ||
} | ||
|
||
// if no title then add widget content wrapper to before widget | ||
function check_sidebar_params( $params ) { | ||
global $wp_registered_widgets; | ||
|
||
$settings_getter = $wp_registered_widgets[ $params[0]['widget_id'] ]['callback'][0]; | ||
$settings = $settings_getter->get_settings(); | ||
$settings = $settings[ $params[1]['number'] ]; | ||
|
||
if ( $params[0][ 'after_widget' ] == '</div></aside>' && isset( $settings[ 'title' ] ) && empty( $settings[ 'title' ] ) ){ | ||
$params[0][ 'before_widget' ] .= '<div class="widget-content ccc">'; | ||
} | ||
|
||
#Counts widgets in mega footer and adds column class accordingly | ||
if( $params[0]['id'] == 'mega-footer' ){ | ||
$sidebars = get_option('sidebars_widgets'); | ||
$widgets = $sidebars['mega-footer']; | ||
$count = count($widgets); | ||
if( $count > 6 ){ | ||
$cols = 2; | ||
} else { | ||
$cols = floor(12 / $count); | ||
} | ||
$params[0]['before_widget'] = str_replace('class="', 'class="col-sm-' . $cols . ' ', $params[0]['before_widget']); | ||
} | ||
return $params; | ||
} | ||
add_filter( 'dynamic_sidebar_params', 'check_sidebar_params' ); | ||
|
||
function mf_remove_extra( $sidebars_widgets ){ | ||
$widgets = $sidebars_widgets['mega-footer']; | ||
if( is_array($sidebars_widgets['mega-footer']) ){ | ||
foreach ($sidebars_widgets['mega-footer'] as $i => $widget) { | ||
if( $i > 6 ){ | ||
unset($sidebars_widgets['mega-footer'][$i]); | ||
} | ||
} | ||
} | ||
return $sidebars_widgets; | ||
} | ||
add_filter( 'sidebars_widgets', 'mf_remove_extra' ); | ||
|
||
function custom_searchform($form){ | ||
global $search_counter; | ||
if( !$search_counter ){ | ||
$search_counter = 0; | ||
} | ||
$search_counter++; | ||
|
||
$form = '<div class="searchform"><form action="/" method="get" class="form-inline" role="form"><div class="form-group"><fieldset>'; | ||
$form .= '<label for="search-'.$search_counter.'" class="sr-only">Search in '.home_url( '/' ).'></label>'; | ||
$form .= '<input type="text" name="s" id="search-'.$search_counter.'" value="'.the_search_query().'" class="form-control" placeholder="Search... " />'; | ||
$form .= '<button type="submit" class="btn btn-default" title="Search"><i class="glyphicon glyphicon-search"></i><span class="sr-only">Search</span></button>'; | ||
$form .= '</fieldset></div></form></div>'; | ||
|
||
return $form; | ||
} | ||
add_filter('get_search_form', 'custom_searchform'); | ||
<?php | ||
|
||
/** | ||
* Register widget area. | ||
* | ||
* @link http://codex.wordpress.org/Function_Reference/register_sidebar | ||
*/ | ||
|
||
if ( function_exists('register_sidebar') ) { | ||
$sidebars = get_option( 'uc_sidebars' ); | ||
/*unset($sidebars['mega-footer']); | ||
unregister_sidebar('mega-footer'); | ||
unset($sidebars['sidebar']); | ||
unregister_sidebar('sidebar');*/ | ||
if(!isset($sidebars['mega-footer'])){ | ||
$sidebars['mega-footer'] = array( | ||
'name' => __( 'Mega Footer', 'theme_text_domain' ), | ||
'description' => 'Limited to 6 widgets. Will appear at the bottom of every page in the site.', | ||
'before_widget' => '<aside id="%1$s" class="widget %2$s">', | ||
'after_widget' => '</aside>', | ||
'before_title' => '<div class="widget-head"><h2 class="widget-title">', | ||
'after_title' => '</h2></div>', | ||
'pages' => array(), | ||
'children' => 'off', | ||
'force' => true | ||
); | ||
update_option('uc_sidebars',$sidebars); | ||
$sidebars['mega-footer']['id'] = 'mega-footer'; | ||
register_sidebar($sidebars['mega-footer']); | ||
} | ||
if(!isset($sidebars['sidebar'])){ | ||
$sidebars['sidebar'] = array( | ||
'name' => __( 'Sidebar', 'theme_text_domain' ), | ||
'description' => 'Appears with Archives, Search Results, the Blog page template, and when viewing single posts.', | ||
'class' => 'sidebar', | ||
'before_widget' => '<aside id="%1$s" class="widget %2$s">', | ||
'after_widget' => '</aside>', | ||
'before_title' => '<div class="widget-head"><h2 class="widget-title">', | ||
'after_title' => '</h2></div>', | ||
'pages' => array(), | ||
'children' => 'off', | ||
'force' => true | ||
); | ||
update_option('uc_sidebars',$sidebars); | ||
$sidebars['sidebar']['id'] = 'sidebar'; | ||
register_sidebar($sidebars['sidebar']); | ||
} | ||
|
||
/*register_sidebar(array( | ||
'name' => __( 'Sidebar', 'theme_text_domain' ), | ||
'id' => 'sidebar', | ||
'description' => 'Appears with Archives, Search Results, the Blog page template, and when viewing single posts.', | ||
'class' => 'sidebar', | ||
'before_widget' => '<aside id="%1$s" class="widget %2$s">', | ||
'after_widget' => '</aside>', | ||
'before_title' => '<div class="widget-head"><h2 class="widget-title">', | ||
'after_title' => '</h2></div>' | ||
)); | ||
register_sidebar( array( | ||
'name' => __( 'Mega Footer' ), | ||
'id' => 'mega-footer', | ||
'description' => 'Limited to 6 widgets. Will appear at the bottom of every page in the site.', | ||
'before_widget' => '<aside id="%1$s" class="widget %2$s">', | ||
'after_widget' => '</aside>', | ||
'before_title' => '<div class="widget-head"><h2 class="widget-title">', | ||
'after_title' => '</h2></div>' | ||
) );*/ | ||
|
||
for($i=0; $i<60; $i++){ | ||
register_sidebar(array( | ||
'name' => __( 'Home '.$i, 'theme_text_domain' ), | ||
'id' => 'home'.$i, | ||
'class' => 'sidebar', | ||
'before_widget' => '<aside id="%1$s" class="widget %2$s">', | ||
'after_widget' => '</aside>', | ||
'before_title' => '<div class="widget-head"><h2 class="widget-title">', | ||
'after_title' => '</h2></div>' | ||
)); | ||
} | ||
} | ||
|
||
// if no title then add widget content wrapper to before widget | ||
function check_sidebar_params( $params ) { | ||
global $wp_registered_widgets; | ||
|
||
$settings_getter = $wp_registered_widgets[ $params[0]['widget_id'] ]['callback'][0]; | ||
$settings = $settings_getter->get_settings(); | ||
$settings = $settings[ $params[1]['number'] ]; | ||
|
||
if ( $params[0][ 'after_widget' ] == '</div></aside>' && isset( $settings[ 'title' ] ) && empty( $settings[ 'title' ] ) ){ | ||
$params[0][ 'before_widget' ] .= '<div class="widget-content ccc">'; | ||
} | ||
|
||
#Counts widgets in mega footer and adds column class accordingly | ||
if( $params[0]['id'] == 'mega-footer' ){ | ||
$sidebars = get_option('sidebars_widgets'); | ||
$widgets = $sidebars['mega-footer']; | ||
$count = count($widgets); | ||
if( $count > 6 ){ | ||
$cols = 2; | ||
} else { | ||
$cols = floor(12 / $count); | ||
} | ||
$params[0]['before_widget'] = str_replace('class="', 'class="col-sm-' . $cols . ' ', $params[0]['before_widget']); | ||
} | ||
return $params; | ||
} | ||
add_filter( 'dynamic_sidebar_params', 'check_sidebar_params' ); | ||
|
||
function mf_remove_extra( $sidebars_widgets ){ | ||
$widgets = $sidebars_widgets['mega-footer']; | ||
if( is_array($sidebars_widgets['mega-footer']) ){ | ||
foreach ($sidebars_widgets['mega-footer'] as $i => $widget) { | ||
if( $i > 6 ){ | ||
unset($sidebars_widgets['mega-footer'][$i]); | ||
} | ||
} | ||
} | ||
return $sidebars_widgets; | ||
} | ||
add_filter( 'sidebars_widgets', 'mf_remove_extra' ); | ||
|
||
function custom_searchform($form){ | ||
global $search_counter; | ||
if( !$search_counter ){ | ||
$search_counter = 0; | ||
} | ||
$search_counter++; | ||
|
||
$form = '<div class="searchform"><form action="/" method="get" class="form-inline" role="form"><div class="form-group"><fieldset>'; | ||
$form .= '<label for="search-'.$search_counter.'" class="sr-only">Search in '.home_url( '/' ).'></label>'; | ||
$form .= '<input type="text" name="s" id="search-'.$search_counter.'" value="'.the_search_query().'" class="form-control" placeholder="Search... " />'; | ||
$form .= '<button type="submit" class="btn btn-default" title="Search"><i class="glyphicon glyphicon-search"></i><span class="sr-only">Search</span></button>'; | ||
$form .= '</fieldset></div></form></div>'; | ||
|
||
return $form; | ||
} | ||
add_filter('get_search_form', 'custom_searchform'); | ||
?> |
Oops, something went wrong.