diff --git a/wp-admin/admin-db.php b/wp-admin/admin-db.php index bf8692ab3a..6333797bc0 100644 --- a/wp-admin/admin-db.php +++ b/wp-admin/admin-db.php @@ -92,8 +92,10 @@ function wp_insert_category($catarr) { else $update = false; - $cat_name = wp_specialchars($cat_name); - + $cat_name = apply_filters('pre_category_name', $cat_name); + $category_nicename = apply_filters('pre_category_nicename', $category_nicename); + $category_description = apply_filters('pre_category_description', $category_description); + if (empty ($category_nicename)) $category_nicename = sanitize_title($cat_name); else @@ -102,6 +104,7 @@ function wp_insert_category($catarr) { if (empty ($category_description)) $category_description = ''; + $category_parent = (int) $category_parent; if (empty ($category_parent)) $category_parent = 0; diff --git a/wp-includes/default-filters.php b/wp-includes/default-filters.php index 03a14ff432..4795b532ec 100644 --- a/wp-includes/default-filters.php +++ b/wp-includes/default-filters.php @@ -49,6 +49,13 @@ add_filter('comment_text', 'convert_smilies', 20); add_filter('comment_excerpt', 'convert_chars'); +// Categories +add_filter('pre_category_name', 'strip_tags'); +add_filter('pre_category_name', 'trim'); +add_filter('pre_category_name', 'wp_filter_kses'); +add_filter('pre_category_name', 'wp_specialchars', 30); +add_filter('pre_category_description', 'wp_filter_kses'); + // Places to balance tags on input add_filter('content_save_pre', 'balanceTags', 50); add_filter('excerpt_save_pre', 'balanceTags', 50);