' . "\n"; } } } add_action( 'wp_head', 'understrap_pingback' ); if ( ! function_exists( 'understrap_mobile_web_app_meta' ) ) { /** * Add mobile-web-app meta. */ function understrap_mobile_web_app_meta() { echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; } } add_action( 'wp_head', 'understrap_mobile_web_app_meta' ); 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' ); // Escapes all occurrences of 'the_archive_description'. add_filter( 'get_the_archive_description', 'understrap_escape_the_archive_description' ); if ( ! function_exists( 'understrap_escape_the_archive_description' ) ) { /** * Escapes the description for an author or post type archive. * * @param string $description Archive description. * @return string Maybe escaped $description. */ function understrap_escape_the_archive_description( $description ) { if ( is_author() || is_post_type_archive() ) { return wp_kses_post( $description ); } /* * All other descriptions are retrieved via term_description() which returns * a sanitized description. */ return $description; } } // End of if function_exists( 'understrap_escape_the_archive_description' ). // Escapes all occurrences of 'the_title()' and 'get_the_title()'. add_filter( 'the_title', 'understrap_kses_title' ); // Escapes all occurrences of 'the_archive_title' and 'get_the_archive_title()'. add_filter( 'get_the_archive_title', 'understrap_kses_title' ); if ( ! function_exists( 'understrap_kses_title' ) ) { /** * Sanitizes data for allowed HTML tags for titles. * * @param string $data Title to filter. * @return string Filtered title with allowed HTML tags and attributes intact. */ function understrap_kses_title( $data ) { // Get allowed tags and protocols. $allowed_tags = wp_kses_allowed_html( 'post' ); $allowed_protocols = wp_allowed_protocols(); if ( in_array( 'polylang/polylang.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ), true ) || in_array( 'polylang-pro/polylang.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ), true ) ) { if ( ! in_array( 'data', $allowed_protocols, true ) ) { $allowed_protocols[] = 'data'; } } if ( has_filter( 'understrap_kses_title' ) ) { /** * Filters the allowed HTML tags and attributes in titles. * * @param array> $allowed_tags Allowed HTML tags and attributes in titles. */ $allowed_tags = apply_filters_deprecated( 'understrap_kses_title', array( $allowed_tags ), '1.2.0' ); } return wp_kses( $data, $allowed_tags, $allowed_protocols ); } } // End of if function_exists( 'understrap_kses_title' ). if ( ! function_exists( 'understrap_hide_posted_by' ) ) { /** * Hides the posted by markup in `understrap_posted_on()`. * * @since 1.0.0 * * @param string $byline Posted by HTML markup. * @return string Maybe filtered posted by HTML markup. */ function understrap_hide_posted_by( $byline ) { if ( is_author() ) { return ''; } return $byline; } } add_filter( 'understrap_posted_by', 'understrap_hide_posted_by' ); add_filter( 'excerpt_more', 'understrap_custom_excerpt_more' ); if ( ! function_exists( 'understrap_custom_excerpt_more' ) ) { /** * Removes the ... from the excerpt read more link * * @param string $more The excerpt. * * @return string */ function understrap_custom_excerpt_more( $more ) { if ( ! is_admin() ) { $more = ''; } return $more; } } add_filter( 'wp_trim_excerpt', 'understrap_all_excerpts_get_more_link' ); if ( ! function_exists( 'understrap_all_excerpts_get_more_link' ) ) { /** * Adds a custom read more link to all excerpts, manually or automatically generated * * @param string $post_excerpt Posts's excerpt. * * @return string */ function understrap_all_excerpts_get_more_link( $post_excerpt ) { if ( is_admin() || ! get_the_ID() ) { return $post_excerpt; } $permalink = esc_url( get_permalink( (int) get_the_ID() ) ); // @phpstan-ignore-line -- post exists return $post_excerpt . ' [...]

' . __( 'Read More...', 'understrap' ) . ' from ' . get_the_title( get_the_ID() ) . '

'; } }