Make WordPress Core


Ignore:
Timestamp:
03/11/2015 10:54:49 PM (11 years ago)
Author:
pento
Message:

Add emoji URL support, and Twemoji fallback for displaying slugs in wp-admin, when the browser doesn't natively support emoji.

Props pento, SergeyBiryukov and boonebgorges.

Fixes #31328

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/formatting.php

    r31733 r31734  
    786786            $unicode_length++;
    787787        } else {
    788             if ( count( $values ) == 0 ) $num_octets = ( $value < 224 ) ? 2 : 3;
     788            if ( count( $values ) == 0 ) {
     789                if ( $value < 224 ) {
     790                    $num_octets = 2;
     791                } elseif ( $value < 240 ) {
     792                    $num_octets = 3;
     793                } else {
     794                    $num_octets = 4;
     795                }
     796            }
    789797
    790798            $values[] = $value;
     
    793801                break;
    794802            if ( count( $values ) == $num_octets ) {
    795                 if ($num_octets == 3) {
    796                     $unicode .= '%' . dechex($values[0]) . '%' . dechex($values[1]) . '%' . dechex($values[2]);
    797                     $unicode_length += 9;
    798                 } else {
    799                     $unicode .= '%' . dechex($values[0]) . '%' . dechex($values[1]);
    800                     $unicode_length += 6;
     803                for ( $j = 0; $j < $num_octets; $j++ ) {
     804                    $unicode .= '%' . dechex( $values[ $j ] );
    801805                }
     806
     807                $unicode_length += $num_octets * 3;
    802808
    803809                $values = array();
Note: See TracChangeset for help on using the changeset viewer.