Skip to content

Instantly share code, notes, and snippets.

@bryanwillis
Last active January 15, 2016 07:43
Show Gist options
  • Save bryanwillis/7f04d4bdfa711e4e3209 to your computer and use it in GitHub Desktop.
Save bryanwillis/7f04d4bdfa711e4e3209 to your computer and use it in GitHub Desktop.
<?php
$genesis_atts = array(
'nav-primary',
'nav-secondary',
'site-header',
'site-inner',
'content-sidebar-wrap',
'content',
'sidebar-primary',
'sidebar-secondary',
'archive-pagination',
'entry-content',
'entry-pagination',
'site-footer',
'nav-footer',
'entry',
'jumbotron-header',
'widget'
);
foreach ( $genesis_att_filter as $context => $classes ) {
$context = "genesis_attr_$context";
add_filter( $context, 'bsg_add_markup_class', 10, 2);
}
function bsg_add_markup_class( $attr, $context ) {
$classes = array();
if( has_filter('bsg-classes-to-add') ) {
$classes = apply_filters ('bsg-classes-to-add', $classes, $context, $attr);
}
$value = isset( $classes[ $context ] ) ? $classes[ $context ] : array();
if ( is_array( $value ) ) {
$classes_array = $value;
} else {
$classes_array = explode( ' ', (string) $value );
}
$classes_array = array_map( 'sanitize_html_class', $classes_array );
$attr['class'] .= ' ' . implode( ' ', $classes_array );
return $attr;
}
function pippin_add_extra_fruits( $classes ) {
$extra_classes = array(
'widget' => 'panel panel-default',
'site-inner' => '',
'content-sidebar-wrap' => 'row',
'content' => 'col-sm-12 col-md-8 col-lg-9',
'sidebar-primary' => 'hidden-sm col-md-4 col-lg-3',
'archive-pagination' => 'clearfix',
'entry-content' => 'clearfix',
'entry-pagination' => 'clearfix bsg-pagination-numeric',
'nav-footer' => 'pull-right',
'entry' => 'panel panel-default',
'jumbotron-header' => 'fullwidth',
'site-footer' => '',
'nav-primary' => 'navbar navbar-inverse navbar-static-top',
'nav-secondary' => 'navbar navbar-default navbar-static-top',
'site-header' => 'navbar navbar-static-top'
);
//$classes = array_merge($extra_classes, $classes);
$classes = wp_parse_args($extra_classes, $classes);
return $classes;
}
function bsg_modify_classes_based_on_extras( $classes, $context, $attr ) {
// do_action( 'add_fruits', $classes );
$classes= pippin_add_extra_fruits($classes);
return $classes;
}
add_filter('bsg-classes-to-add', 'bsg_modify_classes_based_on_extras', 10, 3);
<?php
$genesis_atts = array(
'nav-primary',
'nav-secondary',
'site-header',
'site-inner',
'content-sidebar-wrap',
'content',
'sidebar-primary',
'sidebar-secondary',
'archive-pagination',
'entry-content',
'entry-pagination',
'site-footer',
'nav-footer',
'entry',
'jumbotron-header',
'widget'
);
foreach ( $genesis_atts as $context ) {
$context = "genesis_attr_$context";
add_filter( $context, 'bsg_add_markup_class', 10, 2);
}
function bsg_add_markup_class( $attr, $context ) {
$classes = array();
if( has_filter('bsg-classes-to-add') ) {
$classes = apply_filters ('bsg-classes-to-add', $classes, $context, $attr);
}
$value = isset( $classes[ $context ] ) ? $classes[ $context ] : array();
if ( is_array( $value ) ) {
$classes_array = $value;
} else {
$classes_array = explode( ' ', (string) $value );
}
$classes_array = array_map( 'sanitize_html_class', $classes_array );
$attr['class'] .= ' ' . implode( ' ', $classes_array );
return $attr;
}
function pippin_add_extra_fruits( $classes ) {
$extra_classes = array(
'widget' => 'panel panel-default',
'site-inner' => '',
'content-sidebar-wrap' => 'row',
'content' => 'col-sm-12 col-md-8 col-lg-9',
'sidebar-primary' => 'hidden-sm col-md-4 col-lg-3',
'archive-pagination' => 'clearfix',
'entry-content' => 'clearfix',
'entry-pagination' => 'clearfix bsg-pagination-numeric',
'nav-footer' => 'pull-right',
'entry' => 'panel panel-default',
'jumbotron-header' => 'fullwidth',
'site-footer' => '',
'nav-primary' => 'navbar navbar-inverse navbar-static-top',
'nav-secondary' => 'navbar navbar-default navbar-static-top',
'site-header' => 'navbar navbar-static-top'
);
// $classes = array_merge($extra_classes, $classes);
$classes = wp_parse_args($extra_classes, $classes);
return $classes;
}
// add_action('add_fruits', 'pippin_add_extra_fruits');
function bsg_modify_classes_based_on_extras( $classes, $context, $attr ) {
// do_action( 'add_fruits', $classes );
$classes= pippin_add_extra_fruits($classes);
return $classes;
}
add_filter('bsg-classes-to-add', 'bsg_modify_classes_based_on_extras', 10, 3);
add_filter('bsg-classes-to-add', 'bsg_modify_classes_based_on_template', 10, 3);
function bsg_modify_classes_based_on_template( $classes, $context, $attr ) {
$classes = bsg_layout_options_modify_classes_to_add( $classes );
return $classes;
}
function bsg_layout_options_modify_classes_to_add( $classes ) {
$layout = genesis_site_layout();
// full-width-content
if ( 'full-width-content' === $layout ) {
$classes['content'] = 'col-sm-12';
}
// sidebar-content
if ( 'sidebar-content' === $layout ) {
$classes['content'] = 'col-sm-12 col-md-8 col-lg-9 col-md-push-4 col-lg-push-3';
$classes['sidebar-primary'] = 'hidden-xs hidden-sm col-md-4 col-lg-3 col-md-pull-8 col-lg-pull-9';
}
// content-sidebar-sidebar
if ( 'content-sidebar-sidebar' === $layout ) {
$classes['content'] = 'col-sm-6';
$classes['sidebar-primary'] = 'col-sm-3';
$classes['sidebar-secondary'] = 'col-sm-3';
}
// sidebar-sidebar-content
if ( 'sidebar-sidebar-content' === $layout ) {
$classes['content'] = 'col-sm-6 col-sm-push-6';
$classes['sidebar-primary'] = 'col-sm-3 col-sm-pull-3';
$classes['sidebar-secondary'] = 'col-sm-3 col-sm-pull-9';
}
// sidebar-content-sidebar
if ( 'sidebar-content-sidebar' === $layout ) {
$classes['content'] = 'col-sm-6 col-sm-push-3';
$classes['sidebar-primary'] = 'col-sm-3 col-sm-push-3';
$classes['sidebar-secondary'] = 'col-sm-3 col-sm-pull-9';
}
return $classes;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment