84 lines
2.6 KiB
PHP
Executable File
84 lines
2.6 KiB
PHP
Executable File
<?php
|
|
/*
|
|
Plugin Name: Disable Emojis (GDPR friendly)
|
|
Plugin URI: https://geek.hellyer.kiwi/plugins/disable-emojis/
|
|
Description: Disable Emojis (GDPR friendly)
|
|
Version: 1.7.2
|
|
Author: Ryan Hellyer
|
|
Author URI: https://geek.hellyer.kiwi/
|
|
License: GPL2
|
|
|
|
------------------------------------------------------------------------
|
|
Copyright Ryan Hellyer
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
*/
|
|
|
|
|
|
/**
|
|
* Disable the emoji's
|
|
*/
|
|
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' );
|
|
add_filter( 'wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2 );
|
|
}
|
|
add_action( 'init', 'disable_emojis' );
|
|
|
|
/**
|
|
* Filter function used to remove the tinymce emoji plugin.
|
|
*
|
|
* @param array $plugins
|
|
* @return array Difference betwen the two arrays
|
|
*/
|
|
function 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 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;
|
|
}
|