Style correction + remove emoji from CDN prefetch (cf. disable-emojis plugin) 0.3
authorymh <ymh.work@gmail.com>
Mon, 17 Jun 2019 17:00:14 +0200
changeset 24 86535a5969b8
parent 23 5249c3c623a6
child 25 494279920e1b
Style correction + remove emoji from CDN prefetch (cf. disable-emojis plugin)
src/web/app/themes/twentynineteen-child/functions.php
--- a/src/web/app/themes/twentynineteen-child/functions.php	Mon Jun 17 12:56:05 2019 +0200
+++ b/src/web/app/themes/twentynineteen-child/functions.php	Mon Jun 17 17:00:14 2019 +0200
@@ -14,16 +14,18 @@
 
 /**
  * Disable the emoji's
+ * from https://wordpress.org/plugins/disable-emojis/
  */
 function 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', 'disable_emojis_tinymce' );
+    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', 'disable_emojis_tinymce' );
+    add_filter( 'wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2 );
 }
 add_action( 'init', 'disable_emojis' );
 
@@ -31,12 +33,37 @@
  * Filter function used to remove the tinymce emoji plugin.
  * 
  * @param    array  $plugins  
- * @return   array             Difference betwen the two arrays
+ * @return   array  Difference betwen the two arrays
  */
 function disable_emojis_tinymce( $plugins ) {
-	if ( is_array( $plugins ) ) {
-		return array_diff( $plugins, array( 'wpemoji' ) );
-	} else {
-		return array();
-	}
+    if ( is_array( $plugins ) ) {
+        return array_diff( $plugins, array( 'wpemoji' ) );
+    } else {
+        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 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;
 }
\ No newline at end of file