Tắt Disqus Trên Custom Post Types WordPress
Disqus là một hệ thống bình luận phổ biến, được nhiều website sử dụng để thay thế hệ thống bình luận mặc định của WordPress. Nó cung cấp nhiều tính năng nâng cao như quản lý bình luận dễ dàng, chống spam hiệu quả, và tích hợp mạng xã hội. Tuy nhiên, trong một số trường hợp, bạn có thể muốn tắt Disqus trên các Custom Post Types (CPTs) cụ thể. Ví dụ, nếu bạn có một CPT cho “Sản phẩm” và bạn không muốn người dùng bình luận về chúng, việc tắt Disqus là cần thiết.
Tại Sao Cần Tắt Disqus Trên Custom Post Types?
Có nhiều lý do để tắt Disqus trên các Custom Post Types cụ thể:
- Tính chất nội dung: Một số CPT không phù hợp cho việc bình luận. Ví dụ, CPT “Chứng chỉ” hay “Portfolio” thường không cần bình luận.
- Tránh spam: Nếu một CPT trở thành mục tiêu của spam bình luận, việc tắt Disqus có thể là giải pháp nhanh chóng và hiệu quả.
- Quản lý dễ dàng: Việc loại bỏ bình luận trên một số CPT giúp bạn tập trung vào quản lý bình luận trên các bài viết chính (Posts).
- Tối ưu hiệu suất: Disqus có thể ảnh hưởng đến tốc độ tải trang. Tắt Disqus trên các CPT không cần thiết có thể cải thiện hiệu suất website.
Các Phương Pháp Tắt Disqus Trên Custom Post Types
Có một vài phương pháp để tắt Disqus trên các Custom Post Types trong WordPress, từ việc sử dụng plugin đến việc viết code tùy chỉnh.
1. Sử Dụng Plugin
Đây là phương pháp đơn giản nhất, đặc biệt nếu bạn không quen thuộc với việc viết code. Có một số plugin miễn phí và trả phí có thể giúp bạn thực hiện việc này.
Ví dụ: “Disable Comments” Plugin
“Disable Comments” là một plugin phổ biến cho phép bạn tắt bình luận trên toàn bộ website hoặc trên các Custom Post Types cụ thể. Dưới đây là cách sử dụng nó:
- Cài đặt và kích hoạt plugin “Disable Comments”.
- Truy cập “Settings” -> “Disable Comments” trong bảng điều khiển WordPress.
- Chọn “Everywhere” để tắt bình luận trên toàn bộ website, hoặc chọn “On certain post types” và chọn các Custom Post Types bạn muốn tắt bình luận.
- Lưu cài đặt.
Ưu điểm của việc sử dụng Plugin:
- Dễ sử dụng, không cần kiến thức về code.
- Nhiều plugin miễn phí với chức năng tương tự.
- Tiết kiệm thời gian và công sức.
Nhược điểm của việc sử dụng Plugin:
- Có thể làm chậm website nếu plugin không được tối ưu hóa.
- Phụ thuộc vào plugin và nhà phát triển plugin.
- Có thể gây xung đột với các plugin khác.
2. Viết Code Tùy Chỉnh Trong functions.php
Nếu bạn thoải mái với việc viết code, bạn có thể sử dụng đoạn code sau để tắt Disqus trên các Custom Post Types cụ thể. Thêm đoạn code này vào file functions.php của theme con (child theme) hoặc sử dụng một plugin như “Code Snippets”.
function disable_disqus_on_cpt( $comments ) {
if ( is_singular( array( 'book', 'movie' ) ) ) { // Thay 'book', 'movie' bằng slug của CPT của bạn
return false;
}
return $comments;
}
add_filter( 'comments_template', 'disable_disqus_on_cpt' );
function remove_disqus_count_js() {
if ( is_singular( array( 'book', 'movie' ) ) ) { // Thay 'book', 'movie' bằng slug của CPT của bạn
wp_dequeue_script( 'dsq_count_js' );
}
}
add_action( 'wp_enqueue_scripts', 'remove_disqus_count_js', 100 );
function remove_disqus_head_js() {
if ( is_singular( array( 'book', 'movie' ) ) ) { // Thay 'book', 'movie' bằng slug của CPT của bạn
remove_action( 'wp_head', 'dsq_ajax_loader' );
}
}
add_action( 'wp_head', 'remove_disqus_head_js', 9 );
Giải thích đoạn code:
- Hàm
disable_disqus_on_cpt()kiểm tra xem bài viết hiện tại có thuộc một trong các Custom Post Types được chỉ định (trong ví dụ này là ‘book’ và ‘movie’) hay không. Nếu có, nó trả vềfalse, ngăn chặn việc hiển thị template bình luận. - Hàm
remove_disqus_count_js()loại bỏ script đếm bình luận của Disqus trên các CPT được chỉ định. - Hàm
remove_disqus_head_js()loại bỏ các hành động thêm JavaScript của Disqus vào phần<head>của trang, giúp giảm thiểu các tác động của Disqus đến các CPT được chọn.
Quan trọng: Thay thế 'book', 'movie' bằng slug của các Custom Post Types bạn muốn tắt Disqus. Bạn có thể tìm thấy slug của một Custom Post Type trong phần chỉnh sửa CPT trong bảng điều khiển WordPress, hoặc trong code khai báo CPT.
Ưu điểm của việc viết code tùy chỉnh:
- Kiểm soát hoàn toàn cách Disqus được tắt.
- Không phụ thuộc vào plugin của bên thứ ba.
- Có thể tối ưu hóa code để phù hợp với nhu cầu cụ thể.
Nhược điểm của việc viết code tùy chỉnh:
- Yêu cầu kiến thức về code PHP.
- Có thể gây lỗi nếu code không chính xác.
- Cần bảo trì và cập nhật code khi WordPress hoặc Disqus thay đổi.
3. Sử Dụng Filters và Actions của Disqus Plugin (Nâng Cao)
Một số plugin Disqus cung cấp các filters và actions cho phép bạn tùy chỉnh hành vi của plugin. Bạn có thể sử dụng chúng để tắt Disqus trên các Custom Post Types cụ thể. Phương pháp này đòi hỏi bạn phải đọc tài liệu của plugin Disqus đang sử dụng để tìm hiểu các filters và actions có sẵn.
Ví dụ, nếu plugin Disqus cung cấp một filter cho phép bạn kiểm tra xem bình luận có được hiển thị hay không, bạn có thể sử dụng nó như sau:
function my_disqus_comment_status( $status, $post_id ) {
$post_type = get_post_type( $post_id );
if ( $post_type == 'book' ) { // Thay 'book' bằng slug của CPT của bạn
$status = false; // Tắt bình luận
}
return $status;
}
add_filter( 'disqus_comment_status', 'my_disqus_comment_status', 10, 2 );
Lưu ý: Filter 'disqus_comment_status' chỉ là một ví dụ. Tên filter và cách sử dụng có thể khác nhau tùy thuộc vào plugin Disqus bạn đang sử dụng. Hãy tham khảo tài liệu của plugin để biết thêm chi tiết.
Kiểm Tra Kết Quả
Sau khi bạn đã thực hiện một trong các phương pháp trên, hãy kiểm tra kết quả bằng cách truy cập một bài viết thuộc Custom Post Type bạn đã chọn. Bạn sẽ thấy rằng hệ thống bình luận Disqus đã bị tắt.
Lời Khuyên
- Luôn sao lưu website trước khi thực hiện bất kỳ thay đổi nào.
- Sử dụng child theme để tránh mất các thay đổi khi theme gốc được cập nhật.
- Nếu bạn không chắc chắn về việc viết code, hãy sử dụng plugin.
- Kiểm tra kỹ lưỡng sau khi thực hiện bất kỳ thay đổi nào để đảm bảo website hoạt động bình thường.
Kết Luận
Việc tắt Disqus trên các Custom Post Types là một việc làm hữu ích trong nhiều trường hợp. Bạn có thể sử dụng plugin hoặc viết code tùy chỉnh để thực hiện việc này. Chọn phương pháp phù hợp nhất với kỹ năng và nhu cầu của bạn. Hy vọng bài viết này đã cung cấp cho bạn những kiến thức cần thiết để tắt Disqus trên các Custom Post Types WordPress một cách dễ dàng.
