2014-12-10 11:36:38 +00:00
|
|
|
<?php
|
|
|
|
/**
|
2016-06-28 07:48:44 +00:00
|
|
|
* Custom functions that act independently of the theme templates.
|
2014-12-10 11:36:38 +00:00
|
|
|
*
|
2016-06-28 07:48:44 +00:00
|
|
|
* Eventually, some of the functionality here could be replaced by core features.
|
2014-12-10 11:36:38 +00:00
|
|
|
*
|
|
|
|
* @package understrap
|
|
|
|
*/
|
2016-11-01 19:36:43 +00:00
|
|
|
|
2019-06-20 08:57:12 +00:00
|
|
|
// Exit if accessed directly.
|
|
|
|
defined( 'ABSPATH' ) || exit;
|
2018-09-10 21:59:04 +00:00
|
|
|
|
2018-03-30 16:03:09 +00:00
|
|
|
add_filter( 'body_class', 'understrap_body_classes' );
|
|
|
|
|
2016-11-21 17:12:36 +00:00
|
|
|
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
|
|
|
|
*/
|
2016-11-01 19:36:43 +00:00
|
|
|
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';
|
|
|
|
}
|
2016-11-21 17:12:36 +00:00
|
|
|
|
2016-11-01 19:36:43 +00:00
|
|
|
return $classes;
|
2016-06-28 07:48:44 +00:00
|
|
|
}
|
2014-12-10 11:36:38 +00:00
|
|
|
}
|
2016-08-15 13:03:06 +00:00
|
|
|
|
|
|
|
// Removes tag class from the body_class array to avoid Bootstrap markup styling issues.
|
2017-11-27 08:07:11 +00:00
|
|
|
add_filter( 'body_class', 'understrap_adjust_body_class' );
|
2016-10-16 03:09:05 +00:00
|
|
|
|
2017-11-27 08:07:11 +00:00
|
|
|
if ( ! function_exists( 'understrap_adjust_body_class' ) ) {
|
2016-11-21 17:12:36 +00:00
|
|
|
/**
|
|
|
|
* Setup body classes.
|
|
|
|
*
|
|
|
|
* @param string $classes CSS classes.
|
|
|
|
*
|
|
|
|
* @return mixed
|
|
|
|
*/
|
2017-11-27 08:07:11 +00:00
|
|
|
function understrap_adjust_body_class( $classes ) {
|
2016-10-16 03:09:05 +00:00
|
|
|
|
2016-11-21 17:12:36 +00:00
|
|
|
foreach ( $classes as $key => $value ) {
|
2017-01-27 13:26:46 +00:00
|
|
|
if ( 'tag' == $value ) {
|
2016-11-21 17:12:36 +00:00
|
|
|
unset( $classes[ $key ] );
|
|
|
|
}
|
|
|
|
}
|
2016-10-16 03:09:05 +00:00
|
|
|
|
2016-11-21 17:12:36 +00:00
|
|
|
return $classes;
|
2016-11-01 19:36:43 +00:00
|
|
|
|
|
|
|
}
|
2016-08-15 13:03:06 +00:00
|
|
|
}
|
2016-09-20 00:19:00 +00:00
|
|
|
|
2016-11-21 17:12:36 +00:00
|
|
|
// Filter custom logo with correct classes.
|
2017-11-27 08:07:11 +00:00
|
|
|
add_filter( 'get_custom_logo', 'understrap_change_logo_class' );
|
2016-11-21 17:12:36 +00:00
|
|
|
|
2017-11-27 08:07:11 +00:00
|
|
|
if ( ! function_exists( 'understrap_change_logo_class' ) ) {
|
2016-11-21 17:12:36 +00:00
|
|
|
/**
|
|
|
|
* Replaces logo CSS class.
|
|
|
|
*
|
|
|
|
* @param string $html Markup.
|
|
|
|
*
|
|
|
|
* @return mixed
|
|
|
|
*/
|
2017-11-27 08:07:11 +00:00
|
|
|
function understrap_change_logo_class( $html ) {
|
2017-01-27 13:26:46 +00:00
|
|
|
|
2017-04-23 04:36:09 +00:00
|
|
|
$html = str_replace( 'class="custom-logo"', 'class="img-fluid"', $html );
|
2016-11-21 17:12:36 +00:00
|
|
|
$html = str_replace( 'class="custom-logo-link"', 'class="navbar-brand custom-logo-link"', $html );
|
2018-12-25 18:19:42 +00:00
|
|
|
$html = str_replace( 'alt=""', 'title="Home" alt="logo"', $html );
|
2016-11-01 19:36:43 +00:00
|
|
|
|
|
|
|
return $html;
|
|
|
|
}
|
2016-11-21 17:12:36 +00:00
|
|
|
}
|
2017-02-07 14:30:03 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Display navigation to next/previous post when applicable.
|
|
|
|
*/
|
|
|
|
|
2019-07-04 14:53:03 +00:00
|
|
|
if ( ! function_exists( 'understrap_post_nav' ) ) {
|
2017-02-07 14:30:03 +00:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
?>
|
2018-12-25 18:09:25 +00:00
|
|
|
<nav class="container navigation post-navigation">
|
2018-12-28 09:37:14 +00:00
|
|
|
<h2 class="sr-only"><?php esc_html_e( 'Post navigation', 'understrap' ); ?></h2>
|
2018-12-25 18:09:25 +00:00
|
|
|
<div class="row nav-links justify-content-between">
|
|
|
|
<?php
|
|
|
|
if ( get_previous_post_link() ) {
|
|
|
|
previous_post_link( '<span class="nav-previous">%link</span>', _x( '<i class="fa fa-angle-left"></i> %title', 'Previous post link', 'understrap' ) );
|
|
|
|
}
|
|
|
|
if ( get_next_post_link() ) {
|
2018-12-25 18:17:09 +00:00
|
|
|
next_post_link( '<span class="nav-next">%link</span>', _x( '%title <i class="fa fa-angle-right"></i>', 'Next post link', 'understrap' ) );
|
2018-12-25 18:09:25 +00:00
|
|
|
}
|
|
|
|
?>
|
|
|
|
</div><!-- .nav-links -->
|
|
|
|
</nav><!-- .navigation -->
|
2017-02-07 14:30:03 +00:00
|
|
|
<?php
|
|
|
|
}
|
2018-11-18 15:26:49 +00:00
|
|
|
}
|
|
|
|
|
2019-02-19 16:22:29 +00:00
|
|
|
if ( ! function_exists( 'understrap_pingback' ) ) {
|
|
|
|
/**
|
|
|
|
* Add a pingback url auto-discovery header for single posts of any post type.
|
|
|
|
*/
|
|
|
|
function understrap_pingback() {
|
|
|
|
if ( is_singular() && pings_open() ) {
|
|
|
|
echo '<link rel="pingback" href="' . esc_url( get_bloginfo( 'pingback_url' ) ) . '">' . "\n";
|
|
|
|
}
|
2018-11-18 15:26:49 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
add_action( 'wp_head', 'understrap_pingback' );
|
2018-11-18 15:28:39 +00:00
|
|
|
|
2019-02-19 16:22:29 +00:00
|
|
|
if ( ! function_exists( 'understrap_mobile_web_app_meta' ) ) {
|
|
|
|
/**
|
|
|
|
* Add mobile-web-app meta.
|
|
|
|
*/
|
|
|
|
function understrap_mobile_web_app_meta() {
|
|
|
|
echo '<meta name="mobile-web-app-capable" content="yes">' . "\n";
|
|
|
|
echo '<meta name="apple-mobile-web-app-capable" content="yes">' . "\n";
|
|
|
|
echo '<meta name="apple-mobile-web-app-title" content="' . esc_attr( get_bloginfo( 'name' ) ) . ' - ' . esc_attr( get_bloginfo( 'description' ) ) . '">' . "\n";
|
|
|
|
}
|
2018-11-18 15:28:39 +00:00
|
|
|
}
|
|
|
|
add_action( 'wp_head', 'understrap_mobile_web_app_meta' );
|
2019-12-03 07:19:45 +00:00
|
|
|
|
|
|
|
if ( ! function_exists( 'understrap_default_body_attributes' ) ) {
|
|
|
|
/**
|
|
|
|
* Adds schema markup to the body element.
|
|
|
|
*
|
|
|
|
* @param array $atts An associative array of attributes.
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
function understrap_default_body_attributes( $atts ) {
|
|
|
|
$atts['itemscope'] = '';
|
|
|
|
$atts['itemtype'] = 'http://schema.org/WebSite';
|
|
|
|
return $atts;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
add_filter( 'understrap_body_attributes', 'understrap_default_body_attributes' );
|