
Code xoá toàn bộ liên kết trong bài viết WordPress
Sơ đồ trang
Có khá nhiều dự án team SEO của chúng tôi cần xoá toàn bộ link trong bài viết WordPress (bao gồm xoá cả liên kết nội bộ và liên kết ngoài) để bắt đầu tối ưu cấu trúc SEO từ đầu. Dưới đây là code tôi hay áp dụng để delete toàn bộ liên kết trong post mà bạn có thể áp dụng.
Code xoá toàn bộ liên kết trong bài viết WordPress
Đoạn code dưới thực hiện hai việc:
- Đăng ký một hàm remove_all_links vào hook the_content của WordPress
- Hàm này sẽ loại bỏ tất cả các thẻ (liên kết) nhưng vẫn giữ lại nội dung text bên trong thẻ
add_filter('the_content', 'remove_all_links', 99); // Ưu tiên cao hơn (99)
function remove_all_links($content) {
$content = preg_replace('/<a\s+[^>]*>(.*?)<\/a>/is', '$1', $content);
return $content;
}
Bạn có thể thêm code này bằng một trong các cách sau:
Cách 1: Thêm vào file functions.php của theme
Đăng nhập vào trang quản trị WordPress
- Chọn Appearance (Giao diện) > Theme Editor (Trình sửa giao diện)
- Tìm và mở file functions.php của theme đang sử dụng
- Thêm đoạn code trên vào cuối file (trước thẻ ?> nếu có)
- Nhấn “Update File” (Cập nhật tập tin)
Cách 2: Sử dụng plugin “Code Snippets”
- Cài đặt và kích hoạt plugin “Code Snippets”
- Trong trang quản trị, chọn Snippets > Add New (Thêm mới)
- Đặt tên cho snippet (ví dụ: “Remove All Links”)
- Dán đoạn code vào
- Chọn “Save Changes and Activate” (Lưu thay đổi và kích hoạt)
Chi tiết code
add_filter('the_content', 'remove_all_links', 99);
– Đây là hàm đăng ký bộ lọc (filter) cho nội dung bài viết WordPress. Số 99 là độ ưu tiên, càng cao thì sẽ chạy sau các filter khác.function remove_all_links($content) { ... }
– Định nghĩa hàm xử lý nội dung bài viết.preg_replace('/<a\s+[^>]*>(.*?)<\/a>/is', '$1', $content);
– Dùng regular expression (biểu thức chính quy) để:- Tìm tất cả các thẻ
<a>
với mọi thuộc tính - Giữ lại chỉ nội dung bên trong thẻ (phần
$1
) - Các cờ
is
cho phép tìm kiếm không phân biệt hoa thường và trên nhiều dòng
- Tìm tất cả các thẻ
Kiểm tra kết quả
Sau khi thêm code, hãy xem một bài viết có chứa liên kết để kiểm tra. Tất cả liên kết sẽ biến thành văn bản thường, không còn khả năng click được nữa.
Tùy chỉnh thêm
Nếu bạn chỉ muốn áp dụng cho một số bài viết hoặc danh mục cụ thể, bạn có thể sửa code như sau:
Bài viết liên quan
add_filter('the_content', 'remove_links_selectively', 99);
function remove_links_selectively($content) {
// Chỉ áp dụng cho một danh mục cụ thể (ví dụ: ID = 5)
if (is_category(5) || in_category(5)) {
$content = preg_replace('/<a\s+[^>]*>(.*?)<\/a>/is', '$1', $content);
}
return $content;
}
Lưu ý an toàn
- Luôn sao lưu trang web trước khi thêm code
- Nếu có lỗi, bạn có thể bị mất quyền truy cập vào trang quản trị
- Hãy thử nghiệm trên môi trường thử nghiệm trước khi áp dụng vào trang chính thức
Chúc bạn thành công!