0

Is there any way to disable emoji on specific pages?

function disable_emoji_feature() {

    // Prevent Emoji from loading on the front-end
    remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
    remove_action( 'wp_print_styles', 'print_emoji_styles' );

    // Remove from admin area also
    remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
    remove_action( 'admin_print_styles', 'print_emoji_styles' );

    // Remove from RSS feeds also
    remove_filter( 'the_content_feed', 'wp_staticize_emoji');
    remove_filter( 'comment_text_rss', 'wp_staticize_emoji');

    // Remove from Embeds
    remove_filter( 'embed_head', 'print_emoji_detection_script' );

    // Remove from emails
    remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );

    // Disable from TinyMCE editor. Currently disabled in block editor by default
    add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );


    add_filter( 'option_use_smilies', '__return_false' );


 }
add_action('init', 'disable_emoji_feature');
1
  • how do you determine which pages you want to disable them on? IDs? Slugs?
    – Paul G.
    Jul 17, 2021 at 17:01

1 Answer 1

1

You'll need to adjust your hook so it runs on wp, not init so that you can query what page you're currently on. The code below gives you some examples of determining if you're on the page(s) in questions.

function disable_emoji_feature() {

    if ( is_page( 123 ) || is_page('the-page-slug' ) || is_page( array( 1, 2, 3 ) ) ) {

        // Prevent Emoji from loading on the front-end
        remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
        remove_action( 'wp_print_styles', 'print_emoji_styles' );

        // Remove from admin area also
        remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
        remove_action( 'admin_print_styles', 'print_emoji_styles' );

        // Remove from RSS feeds also
        remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
        remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );

        // Remove from Embeds
        remove_filter( 'embed_head', 'print_emoji_detection_script' );

        // Remove from emails
        remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );

        // Disable from TinyMCE editor. Currently disabled in block editor by default
        add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );

        add_filter( 'option_use_smilies', '__return_false' );
    }
}

add_action( 'wp', 'disable_emoji_feature' );
1
  • Now it's perfect. thanks for your answer. Jul 17, 2021 at 17:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.