Làm thế nào để loại bỏ shortcode không sử dụng từ bài viết [WordPress]
Trong WordPress, nếu bạn đã sử dụng nhiều plugin, bạn chắc chắn sẽ gặp một số yêu cầu bạn phải đặt một mã ngắn vào bài đăng, như [shortcode_1], để nó hoạt động. Sử dụng shortcode có thể là một cách hay để thêm chức năng vào trang web của bạn, nhưng khi bạn tắt plugin, shortcode trong nội dung của bạn sẽ không bị xóa và nó sẽ xuất hiện ở giao diện người dùng ở dạng chưa được xử lý của nó.
Đây là cách nó trông giống như trong hình thức chưa qua chế biến của nó:
Có một số cách để xóa mã không sử dụng khỏi trang web của bạn:
1. Xóa shortcode khỏi cơ sở dữ liệu
Nếu bạn biết shortcode cụ thể mà bạn muốn loại bỏ và bạn muốn loại bỏ nó vĩnh viễn khỏi cơ sở dữ liệu của bạn, bạn có thể chỉ cần làm một truy vấn SQL với lệnh dưới đây:
CẬP NHẬT wp_post SET post_content = REPLACE (post_content, '[shortcodename]', '');
Thay thế “shortcodename” bằng shortcode bạn muốn xóa.
Lưu ý : Đây không phải là một phương pháp dễ dàng bởi vì các mã ngắn khác nhau có thể đi kèm với các thuộc tính và giá trị khác nhau, làm cho khó có thể tạo thành truy vấn SQL bắt tất cả.
2. Thay thế shortcode bằng giá trị rỗng
Nếu bạn biết mã vạch nào cần xóa, nhưng bạn không muốn xóa mã đó vĩnh viễn, bạn có thể làm cho mã đó hiển thị giá trị trống để thay thế. Dán mã sau vào cuối tệp functions.php
(trước thẻ ?>
) Trong thư mục chủ đề của bạn.
add_shortcode ('shorcodename', 'mte_return_empty_shortcode'); function mte_return_empty_shortcode () {return ''; }
Thay thế “shorcodename” bằng shortcode mà bạn muốn xóa.
Lưu ý : Đây là một phương pháp tốt chỉ khi bạn biết bạn sẽ xóa mã shortcode nào. Bạn cũng phải đảm bảo rằng shortcode không còn hoạt động nữa, nếu không nó có thể dẫn đến xung đột.
3. Xóa tất cả các mã ngắn không sử dụng khỏi nội dung (Được khuyến nghị)
Nếu bạn có một loạt các mã ngắn mà bạn không còn sử dụng và bạn không thể nhớ tất cả tên shortcode, đây là cách cuối cùng để vô hiệu hóa tất cả các shortcode không sử dụng trong nội dung của bạn.
Dán mã vào cuối functions.php
của bạn ngay trước thẻ ?>
.
add_filter ('the_content', 'mte_remove_unused_shortcode'); function mte_remove_unused_shortcode ($ content) {$ pattern = mte_get_unused_shortcode_regex (); $ content = preg_replace_callback ('/'. $ pattern. '/ s', 'strip_shortcode_tag', $ nội dung); trả về $ nội dung; } function mte_get_unused_shortcode_regex () {global $ shortcode_tags; $ tagnames = array_keys ($ shortcode_tags); $ tagregexp = join ('|', array_map ('preg_quote', $ tagnames)); $ regex = '\\ [(\\ [?)'; $ regex. = "(?! $ tagregexp)"; $ regex. = '\\ b ([^ \\] \\ /] * (?: \\ / (?! \\]) [^ \\] \\ /] *) *?) (? :( \\ /) \\] | \\] (?: ([^ \\ [] * + (?: \\ [(?! \\ / \\ 2 \\]) [^ \\ [] * + ) * +) \\ [\\ / \\ 2 \\])?) (\\]?) '; trả về $ regex; }
Những gì các mã trên làm là lần đầu tiên lấy danh sách của tất cả các shortcodes hoạt động, tìm kiếm nội dung cho shortcodes mà không phù hợp với danh sách shortcode hoạt động và loại bỏ các shortcodes. Nó được sửa đổi từ hàm get_shortcode_regex để kiểm tra shortcode hoạt động.
Lưu ý : Phương pháp này sẽ hoạt động đối với tất cả các shortcode không sử dụng và nó không xóa vĩnh viễn shortcode. Lần sau khi bạn kích hoạt lại plugin, shortcode tương ứng của nó sẽ tiếp tục hoạt động tự động. Mặt khác, mã này sẽ xóa tất cả nội dung được trích dẫn giữa thẻ “[” và “]”.