FEV 2020
自从
Jan Fabry 另外,Wordpress函数有一点变化,因此,5.6版的正确代码段是:
add_filter( \'sanitize_title\', \'wpse5029_sanitize_title_with_dashes\', 10, 3 );
function wpse5029_sanitize_title_with_dashes($title, $raw_title, $context = \'display\') {
$title = strip_tags( $raw_title );
// Preserve escaped octets.
$title = preg_replace( \'|%([a-fA-F0-9][a-fA-F0-9])|\', \'---$1---\', $title );
// Remove percent signs that are not part of an octet.
$title = str_replace( \'%\', \'\', $title );
// Restore octets.
$title = preg_replace( \'|---([a-fA-F0-9][a-fA-F0-9])---|\', \'%$1\', $title );
if ( seems_utf8( $title ) ) {
$title = utf8_uri_encode( utf8_encode($title), 200 );
}
if ( \'save\' === $context ) {
// Convert  , &ndash, and &mdash to hyphens.
$title = str_replace( array( \'%c2%a0\', \'%e2%80%93\', \'%e2%80%94\' ), \'-\', $title );
// Convert  , &ndash, and &mdash HTML entities to hyphens.
$title = str_replace( array( \' \', \' \', \'–\', \'–\', \'—\', \'—\' ), \'-\', $title );
// Convert forward slash to hyphen.
$title = str_replace( \'/\', \'-\', $title );
// Strip these characters entirely.
$title = str_replace(
array(
// Soft hyphens.
\'%c2%ad\',
// ¡ and ¿.
\'%c2%a1\',
\'%c2%bf\',
// Angle quotes.
\'%c2%ab\',
\'%c2%bb\',
\'%e2%80%b9\',
\'%e2%80%ba\',
// Curly quotes.
\'%e2%80%98\',
\'%e2%80%99\',
\'%e2%80%9c\',
\'%e2%80%9d\',
\'%e2%80%9a\',
\'%e2%80%9b\',
\'%e2%80%9e\',
\'%e2%80%9f\',
// Bullet.
\'%e2%80%a2\',
// ©, ®, °, &hellip, and &trade.
\'%c2%a9\',
\'%c2%ae\',
\'%c2%b0\',
\'%e2%80%a6\',
\'%e2%84%a2\',
// Acute accents.
\'%c2%b4\',
\'%cb%8a\',
\'%cc%81\',
\'%cd%81\',
// Grave accent, macron, caron.
\'%cc%80\',
\'%cc%84\',
\'%cc%8c\',
),
\'\',
$title
);
// Convert × to \'x\'.
$title = str_replace( \'%c3%97\', \'x\', $title );
}
// Kill entities.
$title = preg_replace( \'/&.+?;/\', \'\', $title );
$title = str_replace( \'.\', \'-\', $title );
$title = preg_replace( \'/[^%a-zA-Z0-9 _-]/\', \'\', $title );
$title = preg_replace( \'/\\s+/\', \'-\', $title );
$title = preg_replace( \'|-+|\', \'-\', $title );
$title = trim( $title, \'-\' );
return $title;
}
编辑器将继续显示小写URL,但它将完全按照您发送的内容进行保存,而不更改大小写。
Obs:使用这种类型的函数可能不是一个好主意,因为小写模式更方便。