Làm cách nào tôi có thể tạo chữ cái viết hoa (chữ hoa)


7

Làm thế nào tôi có thể tạo một liên kết như thế này?

http://www.lifecellskin.us/Dev/About

phần "Sử dụng_Permalinks", A là chữ in hoa. Nhưng WP tự động chuyển đổi chữ hoa thành chữ thường.

Tôi đang cố gắng chuyển đổi một trang web cũ chỉ được tạo thành html sang trang web nền tảng WP. Một số liên kết đến trang web trông như thế này:

http://www.lifecellskin.us/About

Các trang web đã được lập chỉ mục bởi SEO. vì vậy tôi không muốn mất thứ hạng SE.

Cảm ơn đã đọc nó, và hy vọng ai đó sẽ có thể làm sáng tỏ về nó ...

Câu trả lời:


8

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;
}

chỉ là một câu hỏi ngu ngốc, tại sao bạn lại thêm tiền tố {anynumber} cho các chức năng của mình?
Horttcore

1
@Horttcore: wpse5029 như câu hỏi WP Stack Exchange # 5029?
Denis de Bernardy

4
@Horttcore: Thật vậy, tôi tiền tố tất cả các tên hàm của tôi với số câu hỏi. Để tự thử chúng dưới dạng các plugin riêng biệt và trong trường hợp ai đó sao chép chúng theo mã riêng của chúng mà không thay đổi: wpseNNNNcó lẽ là duy nhất.
Jan Fabry

À điều đó có ý nghĩa với tôi :-)
Horttcore

1
Nó thật tuyệt! +1 cho tiền tố thông minh.
kaiser

6

Tôi thực sự khuyên bạn nên gắn bó với các URL chữ thường cho trang web của mình mà WordPress sử dụng (Tôi cho rằng URL chữ thường là cách tốt nhất) nhưng bạn đã thiết lập 301 chuyển hướng cho tất cả các URL mà bạn gặp phải vấn đề này. Tôi thấy nó thường kết thúc với nỗi đau khi bạn cố gắng chiến đấu với một nền tảng để ngăn không cho nó làm những gì nó muốn làm và các cấu trúc URL thực sự được đưa vào kiến ​​trúc của WordPress.

Tôi đã viết một câu trả lời khác rất giống với nhu cầu của bạn và ví dụ đó có thể chỉ cho bạn cách sử dụng 'template_redirect'hook để thiết lập chuyển hướng cho các URL ở đây khi bạn gặp vấn đề này:

Nếu bạn muốn làm rõ hơn, xin vui lòng hỏi.


1

Theo như tôi nghĩ, các công cụ tìm kiếm không phải là trường hợp cụ thể, mặc dù URL rất phân biệt chữ hoa chữ thường. Tôi khuyên bạn nên loại bỏ định dạng tệp viết hoa, vì người dùng khó nhớ.

Nếu bạn thực sự muốn bám vào cấu trúc trước đó, bạn sẽ cần phải làm việc với biểu thức chính quy (biểu thức chính quy) trong tệp .htaccess.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.