Using WordPress ’emoji_url’ PHP filter

The emoji_url WordPress PHP filter allows you to modify the URL where emoji PNG images are hosted.

Usage

add_filter('emoji_url', 'your_custom_function', 10, 1);

function your_custom_function($url) {
    // your custom code here
    return $url;
}

Parameters

  • $url (string): The emoji base URL for PNG images.

More information

See WordPress Developer Resources: emoji_url

Examples

Change emoji URL to a custom CDN

Use a custom CDN to serve emoji images faster:

add_filter('emoji_url', 'custom_emoji_url', 10, 1);

function custom_emoji_url($url) {
    $custom_cdn = 'https://my-custom-cdn.com/emoji/';
    return $custom_cdn;
}

Use local emoji images

Serve emoji images from your own server:

add_filter('emoji_url', 'local_emoji_url', 10, 1);

function local_emoji_url($url) {
    $local_emoji = get_stylesheet_directory_uri() . '/images/emoji/';
    return $local_emoji;
}

Append version number to emoji URL

Add a version number to the emoji URL to avoid caching issues:

add_filter('emoji_url', 'versioned_emoji_url', 10, 1);

function versioned_emoji_url($url) {
    $version = '?v=1.0';
    return $url . $version;
}

Serve emoji images from a subdomain

Use a subdomain to host your emoji images:

add_filter('emoji_url', 'subdomain_emoji_url', 10, 1);

function subdomain_emoji_url($url) {
    $subdomain_url = 'https://emoji.example.com/';
    return $subdomain_url;
}

Serve different emoji images based on user agent

Serve different emoji images depending on the user’s browser:

add_filter('emoji_url', 'browser_based_emoji_url', 10, 1);

function browser_based_emoji_url($url) {
    $user_agent = $_SERVER['HTTP_USER_AGENT'];

    if (strpos($user_agent, 'Firefox') !== false) {
        return 'https://firefox-emoji.example.com/';
    } elseif (strpos($user_agent, 'Chrome') !== false) {
        return 'https://chrome-emoji.example.com/';
    } else {
        return $url;
    }
}