Home WordpressWordPress cơ bản Ẩn bài viết có mật khẩu trong WordPress

Ẩn bài viết có mật khẩu trong WordPress

by admincp

WordPress cho phép bạn tạo các bài đăng được bảo vệ bằng mật khẩu. Gần đây, một trong những độc giả của chúng tôi đã hỏi liệu có thể ẩn các bài đăng được bảo vệ bằng mật khẩu khỏi trang web hay không. Theo mặc định, WordPress ẩn nội dung của bài đăng được bảo vệ bằng mật khẩu, nhưng nó vẫn hiển thị tiêu đề bài đăng. Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách ẩn các bài đăng được bảo vệ bằng mật khẩu trong WordPress.

Tại sao nên ẩn bài viết có mật khẩu trong WordPress?

Theo mặc định, WordPress hiển thị bài đăng được bảo vệ bằng mật khẩu với tiêu đề và tiền tố ‘protected’. Người dùng sẽ cần nhập mật khẩu để xem nội dung của bài đăng.

Tiêu đề bài đăng này hiển thị trên trang chủ, archives, tiện ích bài đăng gần đây, v.v … Nếu bạn muốn giữ một số nội dung hoàn toàn riêng tư, thì đây không phải là một lý tưởng.

Không chỉ người dùng không có mật khẩu mới có thể xem tiêu đề bài đăng, họ cũng có thể thử nhập mật khẩu. Như chúng ta đã biết, mật khẩu có thể bị bẻ khóa. Bài viết này sẽ giúp bạn ẩn các bài đăng được bảo vệ bằng mật khẩu trong danh sách posts để những người dùng khác không thể nhìn thấy chúng.

Ẩn các bài viết được bảo vệ bằng mật khẩu trong WordPress

Bạn chèn đoạn code sau vào cuối tệp functions.php

function wp_password_post_filter( $where="" ) {
    if (!is_single() && !is_admin()) {
        $where .= " AND post_password = ''";
    }
    return $where;
}
add_filter( 'posts_where', 'wp_password_post_filter' );

Mã này chỉ đơn giản là sửa đổi truy vấn SQL sử dụng bộ lọc posts_where. Nó yêu cầu WordPress tìm nạp tất cả các bài đăng không có mật khẩu.

Truy cập trang web của bạn và bạn sẽ thấy các bài đăng được bảo vệ bằng mật khẩu không còn hiển thị trên trang chủ, trang archives hoặc trong các tiện ích như các bài đăng gần đây.

Bạn vẫn có thể truy cập bài viết bằng cách truy cập nó thông qua một URL trực tiếp đến chính bài đăng đó.

Ví dụ trên, ẩn các bài đăng được bảo vệ bằng mật khẩu từ tất cả người dùng. Điều gì sẽ xảy ra nếu bạn chạy một trang web WordPress có nhiều tác giả và muốn người dùng có thể xem các bài đăng được bảo vệ để có thể chỉnh sửa các bài đăng riêng tư?

Chỉ cần sửa đổi mã trên bằng một điều kiện khác, như thế này:

function wp_password_post_filter( $where="" ) {
   if (!is_single() && !current_user_can('edit_private_posts') && !is_admin()) {
        $where .= " AND post_password = ''";
    }
    return $where;
}
add_filter( 'posts_where', 'wp_password_post_filter' );

Trong đoạn mã trên, chúng ta kiểm tra xem người dùng có thể chỉnh sửa các bài đăng được bảo vệ bằng mật khẩu hay không, sau đó chỉ hiển thị các bài đăng không có mật khẩu. Làm như vậy tất cả người dùng với vai trò người dùng của quản trị viên và biên tập viên sẽ thấy các bài đăng được bảo vệ bằng mật khẩu trên trang web của bạn.

Hy vọng bài viết này có thể giúp bạn ẩn các bài viết được bảo vệ bằng mật khẩu trong WordPress. Chúc bạn thành công!

Hãy cho mình biết suy nghĩ của bạn trong phần bình luận bên dưới bài viết này. Hãy theo dõi kênh chia sẻ kiến thức WordPress của Vinastar trên TwitterFacebook

Liên hệ

Công ty chuyên Thiết kế website uy tín nhất Miền Bắc: http://vinastar.net

Hotline tư vấn: 0989 48 3456

Nguồn: Sưu tầm trên internet

You may also like

Leave a Comment