The emoji_ext WordPress PHP filter allows you to modify the extension of emoji PNG files in your WordPress site.
Usage
add_filter( 'emoji_ext', 'your_custom_function' );
function your_custom_function( $extension ) {
// your custom code here
return $extension;
}
Parameters
$extension(string) – The emoji extension for PNG files. Default is.png.
More information
See WordPress Developer Resources: emoji_ext
Examples
Change emoji extension to .webp
To serve emoji files with the .webp extension instead of .png:
add_filter( 'emoji_ext', 'change_emoji_extension' );
function change_emoji_extension( $extension ) {
$extension = '.webp';
return $extension;
}
Add a custom suffix to the emoji extension
To add a custom suffix to the emoji extension, for example .custom.png:
add_filter( 'emoji_ext', 'add_custom_suffix_to_emoji_extension' );
function add_custom_suffix_to_emoji_extension( $extension ) {
$extension = '.custom.png';
return $extension;
}
Conditionally change emoji extension
To change the emoji extension based on user’s device:
add_filter( 'emoji_ext', 'conditionally_change_emoji_extension' );
function conditionally_change_emoji_extension( $extension ) {
if ( wp_is_mobile() ) {
$extension = '.mobile.png';
} else {
$extension = '.desktop.png';
}
return $extension;
}
Change emoji extension based on a user’s role
To change the emoji extension based on a user’s role:
add_filter( 'emoji_ext', 'change_emoji_extension_based_on_user_role' );
function change_emoji_extension_based_on_user_role( $extension ) {
$current_user = wp_get_current_user();
if ( in_array( 'administrator', $current_user->roles ) ) {
$extension = '.admin.png';
} else {
$extension = '.non-admin.png';
}
return $extension;
}
Change emoji extension for logged-in users
To change the emoji extension only for logged-in users:
add_filter( 'emoji_ext', 'change_emoji_extension_for_logged_in_users' );
function change_emoji_extension_for_logged_in_users( $extension ) {
if ( is_user_logged_in() ) {
$extension = '.loggedin.png';
}
return $extension;
}