Xóa parent slug khỏi URL trang con WordPress
Tại Sao Nên Xóa Parent Slug Khỏi URL Trang Con WordPress?
Trong WordPress, khi bạn tạo một trang con (child page) bên dưới một trang cha (parent page), URL của trang con đó sẽ tự động bao gồm slug của trang cha. Ví dụ, nếu bạn có một trang cha tên là “dich-vu” và một trang con tên là “thiet-ke-web”, URL của trang con sẽ là “example.com/dich-vu/thiet-ke-web”. Tuy nhiên, trong một số trường hợp, bạn có thể muốn loại bỏ “dich-vu” khỏi URL, để nó trở thành “example.com/thiet-ke-web”.
Việc xóa parent slug khỏi URL có thể mang lại nhiều lợi ích:
- URL ngắn gọn và dễ nhớ hơn: URL ngắn gọn dễ chia sẻ và dễ nhớ hơn cho người dùng, điều này cải thiện trải nghiệm người dùng (UX).
- SEO tốt hơn: Các công cụ tìm kiếm thích URL ngắn gọn và chứa các từ khóa quan trọng. URL ngắn gọn có thể giúp cải thiện thứ hạng tìm kiếm.
- Tính chuyên nghiệp: URL ngắn gọn và rõ ràng thường trông chuyên nghiệp hơn, đặc biệt đối với các trang web doanh nghiệp.
- Tránh trùng lặp nội dung: Trong một số trường hợp, việc có parent slug trong URL có thể dẫn đến các vấn đề về trùng lặp nội dung (duplicate content), điều này có thể ảnh hưởng tiêu cực đến SEO.
Các Phương Pháp Xóa Parent Slug Khỏi URL Trang Con
Có nhiều cách để xóa parent slug khỏi URL trang con trong WordPress. Chúng ta sẽ khám phá một số phương pháp phổ biến nhất, từ sử dụng plugin đến chỉnh sửa trực tiếp file .htaccess.
1. Sử Dụng Plugin (Đề Xuất Cho Người Mới Bắt Đầu)
Đây là phương pháp đơn giản và an toàn nhất, đặc biệt nếu bạn không quen thuộc với việc chỉnh sửa code. Có nhiều plugin WordPress có thể giúp bạn xóa parent slug một cách dễ dàng.
Plugin phổ biến:
- Yoast SEO: Mặc dù chủ yếu được biết đến là một plugin SEO, Yoast SEO cũng cung cấp tính năng để loại bỏ parent slug.
- Rank Math: Tương tự như Yoast SEO, Rank Math cũng cung cấp tính năng loại bỏ parent slug trong phần cài đặt nâng cao.
- Custom Permalinks: Plugin này cho phép bạn tùy chỉnh permalink cho từng trang hoặc bài viết một cách độc lập, bao gồm cả việc loại bỏ parent slug.
- Remove Parent Slug: Một plugin đơn giản và chuyên dụng được thiết kế đặc biệt để loại bỏ parent slug.
Hướng dẫn sử dụng plugin:
- Cài đặt và kích hoạt plugin bạn chọn.
- Tìm đến cài đặt của plugin (thường nằm trong menu “SEO” hoặc “Settings”).
- Tìm tùy chọn để loại bỏ parent slug (thường có tên là “Remove Parent Slug”, “Strip category base”, hoặc tương tự).
- Bật tùy chọn này và lưu cài đặt.
- Kiểm tra URL của các trang con của bạn để đảm bảo parent slug đã được loại bỏ.
2. Chỉnh Sửa File .htaccess (Phương Pháp Nâng Cao)
Phương pháp này yêu cầu bạn chỉnh sửa file .htaccess của trang web. Cần thận trọng khi chỉnh sửa file này, vì một lỗi nhỏ có thể làm hỏng trang web của bạn. Sao lưu file .htaccess trước khi thực hiện bất kỳ thay đổi nào.
Các bước thực hiện:
- Truy cập vào server của bạn thông qua FTP hoặc trình quản lý file của hosting.
- Tìm file
.htaccess. File này thường nằm ở thư mục gốc của trang web (thư mục chứa filewp-config.php). - Mở file
.htaccessbằng trình soạn thảo văn bản. - Thêm đoạn code sau vào trước dòng
# BEGIN WordPress:<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] RewriteRule ^(.*)/(.*)/$ /$2/ [R=301,L] </IfModule> - Lưu file
.htaccess. - Kiểm tra URL của các trang con của bạn để đảm bảo parent slug đã được loại bỏ.
Giải thích đoạn code:
<IfModule mod_rewrite.c>: Kiểm tra xem modulemod_rewritecó được bật trên server hay không. Module này là cần thiết để rewrite URL.RewriteEngine On: Bật engine rewrite.RewriteBase /: Thiết lập base URL cho trang web.RewriteRule ^(.*)/(.*)/$ /$2/ [R=301,L]: Đây là dòng quan trọng nhất. Nó sẽ rewrite URL có dạng “parent-slug/child-slug/” thành “child-slug/”.^(.*)/(.*)/$: Pattern matching URL./$2/: Thay thế bằng child slug (phần thứ hai trong pattern).[R=301,L]: Chuyển hướng 301 (permanent redirect) và dừng xử lý các rule khác.
Lưu ý quan trọng:
- Đoạn code trên có thể cần được điều chỉnh tùy thuộc vào cấu hình server và cấu trúc permalink của bạn.
- Nếu bạn gặp bất kỳ vấn đề nào sau khi chỉnh sửa file
.htaccess, hãy hoàn nguyên về phiên bản sao lưu trước đó. - Hãy cẩn trọng và tìm hiểu kỹ trước khi chỉnh sửa file
.htaccess. Nếu bạn không chắc chắn, hãy nhờ đến sự trợ giúp của một chuyên gia.
3. Sử Dụng Code Trong File functions.php (Phương Pháp Dành Cho Lập Trình Viên)
Phương pháp này yêu cầu bạn thêm code vào file functions.php của theme. Phương pháp này linh hoạt hơn so với chỉnh sửa file .htaccess, nhưng đòi hỏi kiến thức về PHP và WordPress.
Các bước thực hiện:
- Truy cập vào file
functions.phpcủa theme bạn đang sử dụng. Bạn có thể truy cập thông qua FTP hoặc trình chỉnh sửa theme trong WordPress (Appearance -> Theme Editor). - Thêm đoạn code sau vào cuối file
functions.php:function remove_parent_slug( $link, $post ) { if ( 'page' == $post->post_type && 0 != $post->post_parent ) { $parent_link = get_permalink( $post->post_parent ); $link = str_replace( trailingslashit( $parent_link ), '', $link ); } return $link; } add_filter( 'post_type_link', 'remove_parent_slug', 10, 2 ); function custom_redirect_on_slug_change() { global $post; if (isset($_POST['action']) && $_POST['action'] == 'editpost') { $old_slug = get_post_meta($post->ID, '_wp_old_slug', true); $new_slug = $post->post_name; if ($old_slug && $old_slug != $new_slug) { $old_url = site_url() . '/' . $old_slug . '/'; $new_url = site_url() . '/' . $new_slug . '/'; wp_redirect( $new_url, 301 ); exit; } } } add_action('post_updated', 'custom_redirect_on_slug_change'); - Lưu file
functions.php. - Kiểm tra URL của các trang con của bạn để đảm bảo parent slug đã được loại bỏ.
Giải thích đoạn code:
remove_parent_slug: Hàm này được sử dụng để lọc URL của trang (page) và loại bỏ parent slug nếu trang đó có parent.add_filter( 'post_type_link', 'remove_parent_slug', 10, 2 ): Hàm này gắn hàmremove_parent_slugvào filterpost_type_link, cho phép chúng ta can thiệp vào việc tạo URL của trang.custom_redirect_on_slug_change: Hàm này xử lý việc chuyển hướng (redirect) khi slug của một trang thay đổi. Điều này giúp đảm bảo rằng những liên kết cũ vẫn hoạt động sau khi bạn loại bỏ parent slug.add_action('post_updated', 'custom_redirect_on_slug_change'): Hàm này gắn hàmcustom_redirect_on_slug_changevào actionpost_updated, cho phép chúng ta thực hiện các hành động sau khi một bài viết (hoặc trang) được cập nhật.
Lưu ý quan trọng:
- Chỉnh sửa file
functions.phpcó thể gây ra các vấn đề nếu bạn không cẩn thận. Sao lưu file này trước khi thực hiện bất kỳ thay đổi nào. - Nếu bạn gặp bất kỳ lỗi nào, hãy hoàn nguyên về phiên bản sao lưu trước đó hoặc kích hoạt một theme khác.
- Code trên có thể cần được điều chỉnh tùy thuộc vào cấu trúc theme và các plugin bạn đang sử dụng.
Những Điều Cần Lưu Ý Sau Khi Xóa Parent Slug
Sau khi bạn đã loại bỏ parent slug khỏi URL trang con, có một vài điều quan trọng bạn cần lưu ý:
- Kiểm tra kỹ lưỡng các liên kết: Đảm bảo rằng tất cả các liên kết nội bộ (internal links) trên trang web của bạn vẫn hoạt động chính xác. Bạn có thể sử dụng các công cụ kiểm tra liên kết để tìm và sửa các liên kết bị hỏng.
- Cập nhật sitemap: Cập nhật sitemap của bạn để phản ánh các thay đổi URL mới. Điều này giúp các công cụ tìm kiếm thu thập dữ liệu trang web của bạn một cách chính xác hơn.
- Thiết lập chuyển hướng 301 (301 redirect): Nếu bạn đã có các trang web với URL cũ (bao gồm parent slug), hãy thiết lập chuyển hướng 301 từ URL cũ sang URL mới. Điều này giúp duy trì thứ hạng tìm kiếm và đảm bảo rằng người dùng sẽ được chuyển hướng đến trang chính xác. Plugin Yoast SEO và Rank Math đều cung cấp chức năng để dễ dàng tạo chuyển hướng 301.
Kết Luận
Việc xóa parent slug khỏi URL trang con trong WordPress có thể mang lại nhiều lợi ích về SEO, trải nghiệm người dùng và tính chuyên nghiệp. Có nhiều phương pháp để thực hiện việc này, từ sử dụng plugin đến chỉnh sửa code. Hãy chọn phương pháp phù hợp với trình độ kỹ thuật của bạn và luôn nhớ sao lưu trang web trước khi thực hiện bất kỳ thay đổi nào. Chúc bạn thành công!
