<?php
/**
 * Functions which enhance the theme by hooking into WordPress
 *
 * @package Dotspice
 * @version 1.3.0
 */


/**
 * Enable shortcode on text widget
 */
add_filter( 'widget_text', 'do_shortcode' );


/**
 * Add preconnect Google Font link
 */
function dotspice_preconect_google_link(){
	$theme_fonts = dotspice_get_theme_option( 'fonts', array() );

	if ( ! empty( $theme_fonts['google'] ) ) {
		?><link rel="preconnect" href="https://fonts.gstatic.com"><?php
	}
}
add_action( 'wp_head', 'dotspice_preconect_google_link' );


/**
 * Disable the emoji's
 */
function dotspice_disable_emojis() {
	remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
	remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
	remove_action( 'wp_print_styles', 'print_emoji_styles' );
	remove_action( 'admin_print_styles', 'print_emoji_styles' );
	remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
	remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
	remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );

	add_filter( 'tiny_mce_plugins', 'dotspice_disable_emojis_tinymce' );
	add_filter( 'wp_resource_hints', 'dotspice_disable_emojis_remove_dns_prefetch', 10, 2 );
}
add_action( 'init', 'dotspice_disable_emojis' );


/**
 * Filter function used to remove the tinymce emoji plugin.
 *
 * @param    array  $plugins
 * @return   array             Difference betwen the two arrays
 */
function dotspice_disable_emojis_tinymce( $plugins ) {
	if ( is_array( $plugins ) ) {
		return array_diff( $plugins, array( 'wpemoji' ) );
	}

	return array();
}


/**
 * Remove emoji CDN hostname from DNS prefetching hints.
 *
 * @param  array  $urls          URLs to print for resource hints.
 * @param  string $relation_type The relation type the URLs are printed for.
 * @return array                 Difference betwen the two arrays.
 */
function dotspice_disable_emojis_remove_dns_prefetch( $urls, $relation_type ) {

	if ( 'dns-prefetch' == $relation_type ) {

		// Strip out any URLs referencing the WordPress.org emoji location
		$emoji_svg_url_bit = 'https://s.w.org/images/core/emoji/';
		foreach ( $urls as $key => $url ) {
			if ( strpos( $url, $emoji_svg_url_bit ) !== false ) {
				unset( $urls[$key] );
			}
		}

	}

	return $urls;
}