diff options
Diffstat (limited to 'dist/inc/extras.php')
| -rw-r--r-- | dist/inc/extras.php | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/dist/inc/extras.php b/dist/inc/extras.php new file mode 100644 index 0000000..94f7485 --- /dev/null +++ b/dist/inc/extras.php @@ -0,0 +1,114 @@ +<?php +/** + * Custom functions that act independently of the theme templates. + * + * Eventually, some of the functionality here could be replaced by core features. + * + * @package understrap + */ + +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly. +} + +add_filter( 'body_class', 'understrap_body_classes' ); + +if ( ! function_exists( 'understrap_body_classes' ) ) { + /** + * Adds custom classes to the array of body classes. + * + * @param array $classes Classes for the body element. + * + * @return array + */ + function understrap_body_classes( $classes ) { + // Adds a class of group-blog to blogs with more than 1 published author. + if ( is_multi_author() ) { + $classes[] = 'group-blog'; + } + // Adds a class of hfeed to non-singular pages. + if ( ! is_singular() ) { + $classes[] = 'hfeed'; + } + + return $classes; + } +} + +// Removes tag class from the body_class array to avoid Bootstrap markup styling issues. +add_filter( 'body_class', 'understrap_adjust_body_class' ); + +if ( ! function_exists( 'understrap_adjust_body_class' ) ) { + /** + * Setup body classes. + * + * @param string $classes CSS classes. + * + * @return mixed + */ + function understrap_adjust_body_class( $classes ) { + + foreach ( $classes as $key => $value ) { + if ( 'tag' == $value ) { + unset( $classes[ $key ] ); + } + } + + return $classes; + + } +} + +// Filter custom logo with correct classes. +add_filter( 'get_custom_logo', 'understrap_change_logo_class' ); + +if ( ! function_exists( 'understrap_change_logo_class' ) ) { + /** + * Replaces logo CSS class. + * + * @param string $html Markup. + * + * @return mixed + */ + function understrap_change_logo_class( $html ) { + + $html = str_replace( 'class="custom-logo"', 'class="img-fluid"', $html ); + $html = str_replace( 'class="custom-logo-link"', 'class="navbar-brand custom-logo-link"', $html ); + $html = str_replace( 'alt=""', 'title="Home" alt="logo"' , $html ); + + return $html; + } +} + +/** + * Display navigation to next/previous post when applicable. + */ + +if ( ! function_exists ( 'understrap_post_nav' ) ) { + function understrap_post_nav() { + // Don't print empty markup if there's nowhere to navigate. + $previous = ( is_attachment() ) ? get_post( get_post()->post_parent ) : get_adjacent_post( false, '', true ); + $next = get_adjacent_post( false, '', false ); + + if ( ! $next && ! $previous ) { + return; + } + ?> + <nav class="container navigation post-navigation"> + <h2 class="sr-only"><?php _e( 'Post navigation', 'understrap' ); ?></h2> + <div class="row nav-links justify-content-between"> + <?php + + if ( get_previous_post_link() ) { + previous_post_link( '<span class="col nav-previous text-left">%link</span>', _x( '<i class="fa fa-angle-left"></i> %title', 'Previous post link', 'understrap' ) ); + } + if ( get_next_post_link() ) { + next_post_link( '<span class="col nav-next text-right">%link</span>', _x( '%title <i class="fa fa-angle-right"></i>', 'Next post link', 'understrap' ) ); + } + ?> + </div><!-- .nav-links --> + </nav><!-- .navigation --> + + <?php + } +} |
