Code xoá toàn bộ liên kết trong bài viết WordPress

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:


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('/&lt;a\s+[^&gt;]*&gt;(.*?)&lt;\/a&gt;/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

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:

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('/&lt;a\s+[^&gt;]*&gt;(.*?)&lt;\/a&gt;/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!

5/5 - (59 votes)

donate Nếu bạn thấy bài viết có ích bạn có thể donate cho team hoặc chia sẻ bài viết này. Ngoài ra bạn có thể yêu cầu thêm bài viết tại đây
Đã copy
daotiendung

Tiến Dũng Đào chuyên quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress với hơn 5 năm phát triển theme và plugin. Sở thích của anh là đọc, viết blog, đi du lịch, tập võ và chia sẻ các kiến thức cho mọi người.

Bài viết liên quan