Plugin Directory

Changeset 2952621


Ignore:
Timestamp:
08/12/2023 11:26:54 AM (2 years ago)
Author:
isrgrajan
Message:
  • Added options to disable emoji detection script, styles, static emojis, TinyMCE emojis, and DNS prefetch.
  • Improved performance and code structure.
Location:
wp-emoji-sanitizer
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • wp-emoji-sanitizer/trunk/readme.txt

    r2951966 r2952621  
    55Tested up to: 6.3
    66Requires PHP: 5.6
    7 Stable tag: 2.0
     7Stable tag: 2.1
    88License: GPLv2 or later
    99Donate link: https://www.isrgrajan.com/donate
     
    19192. Remove Emoji wp-include/js/emoji.js from admin-dashboard and wp-head
    20203. Clears emoji <javascript> lines from wp-head
     21
    2122== Installation ==
    2223* Download wp-emoji-sanitizer.zip from https://downloads.wordpress.org/plugin/wp-emoji-sanitizer.zip
     
    2829
    2930== Changelog ==
     31= 2.1 =
     32* Added options to disable emoji detection script, styles, static emojis, TinyMCE emojis, and DNS prefetch.
     33* Improved performance and code structure.
     34
    3035= 2.0 =
    3136* Added settings option to enable and disable functions
  • wp-emoji-sanitizer/trunk/wp-emoji-sanitizer.php

    r2951966 r2952621  
    44 * Plugin URI:  https://wordpress.org/plugins/wp-emoji-sanitizer/
    55 * Description: WordPress Emoji Remover & Sanitizer help you to disable and remove the in-built WordPress Emoji feature by clearing the JavaScript and CSS from the wp-head
    6  * Version:     2.0
     6 * Version:     2.1
    77 * Author:      PrajnaBytes
    88 * Author URI:  https://www.prajnabytes.com/
     
    1414 */
    1515
    16 if (!function_exists('disable_wpemojisanitizer')) {
    17     function disable_wpemojisanitizer() {
    18         // Check if option to disable emoji support is set to true
     16class WP_Emoji_Sanitizer_Plugin {
     17
     18    public function __construct() {
     19        add_action('init', array($this, 'disable_wpemojisanitizer'));
     20
     21        add_filter('tiny_mce_plugins', array($this, 'wpemojisanitizer_disable_emojis_support_in_tinymce'));
     22
     23        add_filter('wp_resource_hints', array($this, 'wpemojisanitizer_disable_emojis_remove_dns_prefetch'), 10, 2);
     24
     25        add_action('admin_menu', array($this, 'wpemojisanitizer_add_settings_page'));
     26
     27        add_action('admin_init', array($this, 'wpemojisanitizer_register_settings'));
     28
     29        register_activation_hook(__FILE__, array($this, 'wpemojisanitizer_activate'));
     30        register_uninstall_hook(__FILE__, array($this, 'wpemojisanitizer_uninstall'));
     31    }
     32
     33    public function disable_wpemojisanitizer() {
    1934        if (get_option('wpemojisanitizer_disable_emoji_support', true)) {
    2035            remove_action('wp_head', 'print_emoji_detection_script', 7);
     
    2742        }
    2843    }
    29 }
    30 add_action('init', 'disable_wpemojisanitizer');
    3144
    32 if (!function_exists('wpemojisanitizer_disable_emojis_support_in_tinymce')) {
    33     function wpemojisanitizer_disable_emojis_support_in_tinymce($plugins) {
     45    public function wpemojisanitizer_disable_emojis_support_in_tinymce($plugins) {
    3446        if (is_array($plugins)) {
    3547            return array_diff($plugins, array('wpemoji'));
     
    3850        }
    3951    }
    40 }
    41 add_filter('tiny_mce_plugins', 'wpemojisanitizer_disable_emojis_support_in_tinymce');
    4252
    43 if (!function_exists('wpemojisanitizer_disable_emojis_remove_dns_prefetch')) {
    44     function wpemojisanitizer_disable_emojis_remove_dns_prefetch($urls, $relation_type) {
    45         // Check if option to remove DNS prefetch for emojis is set to true
     53    public function wpemojisanitizer_disable_emojis_remove_dns_prefetch($urls, $relation_type) {
    4654        if (get_option('wpemojisanitizer_disable_emoji_dns_prefetch', true)) {
    4755            if ('dns-prefetch' === $relation_type) {
     
    5260        return $urls;
    5361    }
    54 }
    55 add_filter('wp_resource_hints', 'wpemojisanitizer_disable_emojis_remove_dns_prefetch', 10, 2);
    5662
    57 // Add settings page to the admin menu
    58 add_action('admin_menu', 'wpemojisanitizer_add_settings_page');
     63    public function wpemojisanitizer_add_settings_page() {
     64        add_options_page(
     65            __('Emoji Sanitizer Settings', 'wpemojisanitizer'),
     66            __('Emoji Sanitizer', 'wpemojisanitizer'),
     67            'manage_options',
     68            'wpemojisanitizer_settings',
     69            array($this, 'wpemojisanitizer_settings_page_callback')
     70        );
     71    }
    5972
    60 // Define settings page callback
    61 function wpemojisanitizer_settings_page_callback() {
    62     // Get options from the database
    63     $options = get_option('wpemojisanitizer_options');
    64     ?>
    65     <div class="wrap">
    66         <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
    67         <form method="post" action="options.php">
    68             <?php settings_fields('wpemojisanitizer_options_group'); ?>
    69             <table class="form-table">
    70                 <tbody>
    71                     <tr>
    72                         <th scope="row"><?php _e('Disable Emoji Detection Script', 'wpemojisanitizer'); ?></th>
    73                         <td>
    74                             <input type="checkbox" name="wpemojisanitizer_options[disable_detection_script]" <?php checked($options['disable_detection_script']); ?>>
    75                         </td>
    76                     </tr>
    77                     <tr>
    78                         <th scope="row"><?php _e('Disable Emoji Styles', 'wpemojisanitizer'); ?></th>
    79                         <td>
    80                             <input type="checkbox" name="wpemojisanitizer_options[disable_styles]" <?php checked($options['disable_styles']); ?>>
    81                         </td>
    82                     </tr>
    83                     <tr>
    84                         <th scope="row"><?php _e('Disable Static Emoji', 'wpemojisanitizer'); ?></th>
    85                         <td>
    86                             <input type="checkbox" name="wpemojisanitizer_options[disable_static_emoji]" <?php checked($options['disable_static_emoji']); ?>>
    87                         </td>
    88                     </tr>
    89                     <tr>
    90                         <th scope="row"><?php _e('Disable TinyMCE Emoji', 'wpemojisanitizer'); ?></th>
    91                         <td>
    92                             <input type="checkbox" name="wpemojisanitizer_options[disable_tinymce_emoji]" <?php checked($options['disable_tinymce_emoji']); ?>>
    93                         </td>
    94                     </tr>
    95                     <tr>
    96                         <th scope="row"><?php _e('Disable DNS Prefetch', 'wpemojisanitizer'); ?></th>
    97                         <td>
    98                             <input type="checkbox" name="wpemojisanitizer_options[disable_dns_prefetch]" <?php checked($options['disable_dns_prefetch']); ?>>
    99                         </td>
    100                     </tr>
    101                 </tbody>
    102             </table>
    103             <?php submit_button(); ?>
    104         </form>
    105     </div>
    106     <?php
     73    public function wpemojisanitizer_settings_page_callback() {
     74        $options = get_option('wpemojisanitizer_options');
     75        ?>
     76        <div class="wrap">
     77            <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
     78            <form method="post" action="options.php">
     79                <?php settings_fields('wpemojisanitizer_options_group'); ?>
     80                <table class="form-table">
     81                    <tbody>
     82                        <tr>
     83                            <th scope="row"><?php _e('Disable Emoji Detection Script', 'wpemojisanitizer'); ?></th>
     84                            <td>
     85                                <input type="checkbox" name="wpemojisanitizer_options[disable_detection_script]" <?php checked($options['disable_detection_script']); ?>>
     86                            </td>
     87                        </tr>
     88                        <tr>
     89                            <th scope="row"><?php _e('Disable Emoji Styles', 'wpemojisanitizer'); ?></th>
     90                            <td>
     91                                <input type="checkbox" name="wpemojisanitizer_options[disable_styles]" <?php checked($options['disable_styles']); ?>>
     92                            </td>
     93                        </tr>
     94                        <tr>
     95                            <th scope="row"><?php _e('Disable Static Emoji', 'wpemojisanitizer'); ?></th>
     96                            <td>
     97                                <input type="checkbox" name="wpemojisanitizer_options[disable_static_emoji]" <?php checked($options['disable_static_emoji']); ?>>
     98                            </td>
     99                        </tr>
     100                        <tr>
     101                            <th scope="row"><?php _e('Disable TinyMCE Emoji', 'wpemojisanitizer'); ?></th>
     102                            <td>
     103                                <input type="checkbox" name="wpemojisanitizer_options[disable_tinymce_emoji]" <?php checked($options['disable_tinymce_emoji']); ?>>
     104                            </td>
     105                        </tr>
     106                        <tr>
     107                            <th scope="row"><?php _e('Disable DNS Prefetch', 'wpemojisanitizer'); ?></th>
     108                            <td>
     109                                <input type="checkbox" name="wpemojisanitizer_options[disable_dns_prefetch]" <?php checked($options['disable_dns_prefetch']); ?>>
     110                            </td>
     111                        </tr>
     112                    </tbody>
     113                </table>
     114                <?php submit_button(); ?>
     115            </form>
     116        </div>
     117        <?php
     118    }
     119
     120    public function wpemojisanitizer_register_settings() {
     121        register_setting(
     122            'wpemojisanitizer_options_group',
     123            'wpemojisanitizer_options'
     124        );
     125    }
     126
     127    public function wpemojisanitizer_activate() {
     128        add_option('wpemojisanitizer_options', array(
     129            'disable_detection_script' => true,
     130            'disable_styles' => true,
     131            'disable_static_emoji' => true,
     132            'disable_tinymce_emoji' => true,
     133            'disable_dns_prefetch' => true
     134        ));
     135    }
     136
     137    public function wpemojisanitizer_uninstall() {
     138        delete_option('wpemojisanitizer_options');
     139    }
    107140}
    108141
    109 // Register settings page
    110 function wpemojisanitizer_add_settings_page() {
    111     add_options_page(
    112         __('Emoji Sanitizer Settings', 'wpemojisanitizer'),
    113         __('Emoji Sanitizer', 'wpemojisanitizer'),
    114         'manage_options',
    115         'wpemojisanitizer_settings',
    116         'wpemojisanitizer_settings_page_callback'
    117     );
    118 }
    119 
    120 // Register settings
    121 function wpemojisanitizer_register_settings() {
    122     register_setting(
    123         'wpemojisanitizer_options_group',
    124         'wpemojisanitizer_options'
    125     );
    126 }
    127 add_action('admin_init', 'wpemojisanitizer_register_settings');
    128 
    129 // Register activation and uninstall hooks
    130 register_activation_hook(__FILE__, 'wpemojisanitizer_activate');
    131 register_uninstall_hook(__FILE__, 'wpemojisanitizer_uninstall');
    132 
    133 // Define activation hook
    134 function wpemojisanitizer_activate() {
    135     // Set default options on activation
    136     add_option('wpemojisanitizer_options', array(
    137         'disable_detection_script' => true,
    138         'disable_styles' => true,
    139         'disable_static_emoji' => true,
    140         'disable_tinymce_emoji' => true,
    141         'disable_dns_prefetch' => true
    142     ));
    143 }
    144 
    145 // Define uninstall hook
    146 function wpemojisanitizer_uninstall() {
    147     // Remove options on uninstall
    148     delete_option('wpemojisanitizer_options');
    149 }
     142$emoji_sanitizer_plugin = new WP_Emoji_Sanitizer_Plugin();
Note: See TracChangeset for help on using the changeset viewer.