Untitled diff

Created Diff never expires
29 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
50 lines
76 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
55 lines
function wpse8170_sanitize_title_with_dashes( $title, $raw_title = '', $context = 'display' ) {
function sanitize_title_with_dashes( $title, $raw_title = '', $context = 'display' ) {
$title = strip_tags($title);
1580 $title = strip_tags($title);
// Preserve escaped octets.
1581 // Preserve escaped octets.
$title = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '---$1---', $title);
1582 $title = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '---$1---', $title);
// Remove percent signs that are not part of an octet.
1583 // Remove percent signs that are not part of an octet.
$title = str_replace('%', '', $title);
1584 $title = str_replace('%', '', $title);
// Restore octets.
1585 // Restore octets.
$title = preg_replace('|---([a-fA-F0-9][a-fA-F0-9])---|', '%$1', $title);
1586 $title = preg_replace('|---([a-fA-F0-9][a-fA-F0-9])---|', '%$1', $title);

1587
if (seems_utf8($title)) {
1588 if (seems_utf8($title)) {
if (function_exists('mb_strtolower')) {
1589 if (function_exists('mb_strtolower')) {
$title = mb_strtolower($title, 'UTF-8');
1590 $title = mb_strtolower($title, 'UTF-8');
}
1591 }
$title = utf8_uri_encode($title, 1000); // <--- here is the trick!
1592 $title = utf8_uri_encode($title, 200);
}
1593 }

1594
$title = strtolower($title);
1595 $title = strtolower($title);
$title = preg_replace('/&.+?;/', '', $title); // kill entities
1596
$title = str_replace('.', '-', $title);
1597 if ( 'save' == $context ) {

1598 // Convert nbsp, ndash and mdash to hyphens
if ( 'save' == $context ) {
1599 $title = str_replace( array( '%c2%a0', '%e2%80%93', '%e2%80%94' ), '-', $title );
// Convert nbsp, ndash and mdash to hyphens
1600 // Convert nbsp, ndash and mdash HTML entities to hyphens
$title = str_replace( array( '%c2%a0', '%e2%80%93', '%e2%80%94' ), '-', $title );
1601 $title = str_replace( array( '&nbsp;', '&#160;', '&ndash;', '&#8211;', '&mdash;', '&#8212;' ), '-', $title );

1602
// Strip these characters entirely
1603 // Strip these characters entirely
$title = str_replace( array(
1604 $title = str_replace( array(
// iexcl and iquest
1605 // iexcl and iquest
'%c2%a1', '%c2%bf',
1606 '%c2%a1', '%c2%bf',
// angle quotes
1607 // angle quotes
'%c2%ab', '%c2%bb', '%e2%80%b9', '%e2%80%ba',
1608 '%c2%ab', '%c2%bb', '%e2%80%b9', '%e2%80%ba',
// curly quotes
1609 // curly quotes
'%e2%80%98', '%e2%80%99', '%e2%80%9c', '%e2%80%9d',
1610 '%e2%80%98', '%e2%80%99', '%e2%80%9c', '%e2%80%9d',
'%e2%80%9a', '%e2%80%9b', '%e2%80%9e', '%e2%80%9f',
1611 '%e2%80%9a', '%e2%80%9b', '%e2%80%9e', '%e2%80%9f',
// copy, reg, deg, hellip and trade
1612 // copy, reg, deg, hellip and trade
'%c2%a9', '%c2%ae', '%c2%b0', '%e2%80%a6', '%e2%84%a2',
1613 '%c2%a9', '%c2%ae', '%c2%b0', '%e2%80%a6', '%e2%84%a2',
// grave accent, acute accent, macron, caron
1614 // acute accents
'%cc%80', '%cc%81', '%cc%84', '%cc%8c',
1615 '%c2%b4', '%cb%8a', '%cc%81', '%cd%81',
), '', $title );
1616 // grave accent, macron, caron

1617 '%cc%80', '%cc%84', '%cc%8c',
// Convert times to x
1618 ), '', $title );
$title = str_replace( '%c3%97', 'x', $title );
1619
}
1620 // Convert times to x

1621 $title = str_replace( '%c3%97', 'x', $title );
$title = preg_replace('/[^%a-z0-9 _-]/', '', $title);
1622 }
$title = preg_replace('/\s+/', '-', $title);
1623
$title = preg_replace('|-+|', '-', $title);
1624 $title = preg_replace('/&.+?;/', '', $title); // kill entities
$title = trim($title, '-');
1625 $title = str_replace('.', '-', $title);

1626
return $title;
1627 $title = preg_replace('/[^%a-z0-9 _-]/', '', $title);
}
1628 $title = preg_replace('/\s+/', '-', $title);
1629 $title = preg_replace('|-+|', '-', $title);
1630 $title = trim($title, '-');
1631
1632 return $title;
1633 }