Các URL trang được xác định bởi các con sên và theo mặc định, chúng được định dạng và đặt dưới bởi hàm sanitize_title_with_dashes()
. Tuy nhiên, chức năng này được gọi thông qua bộ lọc và bạn có thể gỡ bỏ bộ lọc để nó không được gọi:
remove_filter( 'sanitize_title', 'sanitize_title_with_dashes' );
Chỉ làm điều này có lẽ không phải là một ý tưởng tốt, vì nó sẽ không loại bỏ khoảng trống và những thứ kỳ lạ khác trong sên. Tôi đề nghị bạn sao chép chức năng hiện có, loại bỏ phần viết thường và nối lại:
add_filter( 'sanitize_title', 'wpse5029_sanitize_title_with_dashes' );
function wpse5029_sanitize_title_with_dashes($title) {
$title = strip_tags($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);
$title = remove_accents($title);
if (seems_utf8($title)) {
//if (function_exists('mb_strtolower')) {
// $title = mb_strtolower($title, 'UTF-8');
//}
$title = utf8_uri_encode($title, 200);
}
//$title = strtolower($title);
$title = preg_replace('/&.+?;/', '', $title); // kill entities
$title = str_replace('.', '-', $title);
// Keep upper-case chars too!
$title = preg_replace('/[^%a-zA-Z0-9 _-]/', '', $title);
$title = preg_replace('/\s+/', '-', $title);
$title = preg_replace('|-+|', '-', $title);
$title = trim($title, '-');
return $title;
}