From 874cd9077fef75004b45a23fadf04b75778d583c Mon Sep 17 00:00:00 2001 From: nacin Date: Wed, 2 May 2012 16:37:42 +0000 Subject: [PATCH] Add characters to be stripped or replaced in sanitize_title_with_dashes(). * Replace times (multiplication sign) with x. * Strip low quotation marks and other curly quotes we don't already deal with. props SergeyBiryukov. fixes #19820. git-svn-id: http://core.svn.wordpress.org/trunk@20686 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/formatting.php | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/wp-includes/formatting.php b/wp-includes/formatting.php index 326530126..3d8484601 100644 --- a/wp-includes/formatting.php +++ b/wp-includes/formatting.php @@ -917,16 +917,24 @@ function sanitize_title_with_dashes($title, $raw_title = '', $context = 'display $title = str_replace('.', '-', $title); if ( 'save' == $context ) { - // nbsp, ndash and mdash + // Convert nbsp, ndash and mdash to hyphens $title = str_replace( array( '%c2%a0', '%e2%80%93', '%e2%80%94' ), '-', $title ); - // iexcl and iquest - $title = str_replace( array( '%c2%a1', '%c2%bf' ), '', $title ); - // angle quotes - $title = str_replace( array( '%c2%ab', '%c2%bb', '%e2%80%b9', '%e2%80%ba' ), '', $title ); - // curly quotes - $title = str_replace( array( '%e2%80%98', '%e2%80%99', '%e2%80%9c', '%e2%80%9d' ), '', $title ); - // copy, reg, deg, hellip and trade - $title = str_replace( array( '%c2%a9', '%c2%ae', '%c2%b0', '%e2%80%a6', '%e2%84%a2' ), '', $title ); + + // Strip these characters entirely + $title = str_replace( array( + // iexcl and iquest + '%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', + // copy, reg, deg, hellip and trade + '%c2%a9', '%c2%ae', '%c2%b0', '%e2%80%a6', '%e2%84%a2', + ), '', $title ); + + // Convert times to x + $title = str_replace( '%c3%97', 'x', $title ); } $title = preg_replace('/[^%a-z0-9 _-]/', '', $title);