Dưới đây là hướng dẫn chi tiết về cách thêm chức năng “Đăng nhập để xem nội dung hoặc bài viết” vào website WordPress của bạn. Chúng ta sẽ sử dụng shortcode [ẩn]
để ẩn nội dung trong bài viết và một Meta Box để kiểm soát ẩn toàn bộ bài viết cho người chưa đăng nhập. Nay mình sẽ hướng dẫn các bạn cách code ẩn nội dung chỉ thành viên đăng nhập mới thấy nhé. Mời các bạn xem bài viết hướng dẫn dưới đây
Xem demo tại đây: https://muathemewpgiare.com/tu-dong-chia-se-file-google-drive-woocommerce/
Hướng dẫn code chức năng đăng nhập để xem nội dung hoặc bài viết
Trong hướng dẫn này, chúng ta sẽ xây dựng một tính năng trên WordPress, cho phép bạn ẩn nội dung trong một phần hoặc toàn bộ bài viết, và chỉ hiện cho người đã đăng nhập. Với tính năng này, người dùng chưa đăng nhập sẽ thấy thông báo yêu cầu đăng nhập hoặc đăng ký để xem nội dung.
Phần 1: Sử dụng shortcode [ẩn]
để ẩn một phần nội dung trong bài viết và đăng nhập để xem nội dung hoặc bài viết
Shortcode [ẩn]
giúp bạn ẩn một phần nội dung trong bài viết và chỉ hiển thị cho người dùng đã đăng nhập. Nếu người dùng chưa đăng nhập, sẽ hiển thị thông báo yêu cầu đăng nhập hoặc đăng ký.
Bước 1: Thêm shortcode [ẩn]
vào functions.php
Thêm đoạn mã sau vào file functions.php
của theme bạn đang sử dụng:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | // Thêm shortcode [an] để ẩn nội dung cho khách function an_shortcode($atts, $content = null) { // Kiểm tra xem người dùng đã đăng nhập chưa if (is_user_logged_in()) { // Nếu đã đăng nhập, hiển thị nội dung return do_shortcode($content); } else { // Nếu chưa đăng nhập, hiển thị thông báo hoặc lời nhắc đăng nhập ob_start(); ?> <div class="muathemewpgiare-vuacode-content"> <p class="muathemewpgiare-vuacode-message">Vui lòng đăng nhập hoặc đăng ký tài khoản để xem nội dung này</p> </div> <style> /* Hiệu ứng gradient động */ @keyframes gradientBG { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } /* Khối ẩn nội dung */ .muathemewpgiare-vuacode-content { padding: 25px; border-radius: 12px; text-align: center; font-size: 20px; font-weight: bold; color: #ffffff; font-family: Arial, sans-serif; background: linear-gradient(45deg, #ff6f91, #ff9671, #ffc75f, #f9f871); background-size: 300% 300%; animation: gradientBG 6s ease infinite; box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.2); filter: brightness(0.95); } /* Hiệu ứng chữ */ .muathemewpgiare-vuacode-message { font-weight: bold; font-family: 'Helvetica Neue', sans-serif; text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.3); letter-spacing: 0.8px; } </style> <?php return ob_get_clean(); } } add_shortcode('an', 'an_shortcode'); |
Cách sử dụng
Sau khi thêm mã này, bạn có thể sử dụng shortcode [ẩn]
trong bài viết để ẩn bất kỳ nội dung nào bạn muốn. Ví dụ:
1 2 3 4 5 | Đây là nội dung công khai. [an]Đây là nội dung chỉ hiển thị cho người dùng đã đăng nhập.[/an] Nội dung này cũng công khai. |
Khi người dùng chưa đăng nhập, phần nội dung giữa [ẩn]
và [/ẩn]
sẽ bị ẩn và thay thế bằng thông báo yêu cầu đăng nhập.
Phần 2: Ẩn toàn bộ bài viết với người chưa đăng nhập
Nếu bạn muốn ẩn toàn bộ nội dung bài viết đối với người chưa đăng nhập, bạn có thể sử dụng một Meta Box để bật/tắt tính năng này cho từng bài viết.
Có thể bạn quan tâm: Hướng Dẫn Tạo Popup Đăng Nhập Thành Công Bằng SweetAlert2 Trong WordPress
Bước 1: Thêm mã kiểm tra đăng nhập vào functions.php
Thêm đoạn mã sau vào functions.php
:
1 2 3 4 5 6 7 8 9 10 11 12 13 | // Ẩn nội dung bài viết với người chưa đăng nhập nếu Meta Box được bật function restrict_content_for_guests($content) { if (is_single() && in_the_loop() && is_main_query()) { $hidden_content = get_post_meta(get_the_ID(), '_hidden_content', true); // Kiểm tra nếu bài viết có cài đặt chỉ dành cho thành viên và người dùng chưa đăng nhập if ($hidden_content && !is_user_logged_in()) { return '<p>Nội dung này chỉ dành cho thành viên đã đăng nhập. Vui lòng <a href="' . wp_login_url(get_permalink()) . '">đăng nhập</a> hoặc <a href="' . wp_registration_url() . '">đăng ký</a> để xem nội dung này.</p>'; } } return $content; } add_filter('the_content', 'restrict_content_for_guests'); |
Bước 2: Tạo Meta Box cho cài đặt chỉ hiển thị cho thành viên
Để thêm Meta Box vào trang chỉnh sửa bài viết, sử dụng đoạn mã sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | // Thêm Meta Box vào trang chỉnh sửa bài viết function add_hidden_content_meta_box() { add_meta_box( 'hidden_content_meta_box', 'Chỉ dành cho thành viên', 'display_hidden_content_meta_box', 'post', 'side', 'high' ); } add_action('add_meta_boxes', 'add_hidden_content_meta_box'); // Hiển thị Meta Box function display_hidden_content_meta_box($post) { $value = get_post_meta($post->ID, '_hidden_content', true); ?> <label for="hidden_content">Ẩn bài viết với người chưa đăng nhập:</label> <input type="checkbox" name="hidden_content" id="hidden_content" value="1" <?php checked($value, '1'); ?> /> <?php } // Lưu giá trị của Meta Box function save_hidden_content_meta_box($post_id) { if (array_key_exists('hidden_content', $_POST)) { update_post_meta($post_id, '_hidden_content', $_POST['hidden_content']); } else { delete_post_meta($post_id, '_hidden_content'); } } add_action('save_post', 'save_hidden_content_meta_box'); |
Cách sử dụng
- Sau khi thêm mã trên, bạn sẽ thấy Meta Box mới có tên “Chỉ dành cho thành viên” ở trang chỉnh sửa bài viết.
- Khi bạn đánh dấu vào ô “Ẩn bài viết với người chưa đăng nhập”, nội dung bài viết sẽ chỉ hiển thị cho người dùng đã đăng nhập. Người dùng chưa đăng nhập sẽ thấy thông báo yêu cầu đăng nhập hoặc đăng ký.
Tổng kết
- Shortcode
[ẩn]
: Dùng để ẩn một phần nội dung trong bài viết. - Meta Box “Chỉ dành cho thành viên”: Dùng để ẩn toàn bộ nội dung bài viết với người chưa đăng nhập.
Với cách kết hợp này, bạn có thể linh hoạt kiểm soát việc hiển thị nội dung cho từng bài viết hoặc từng đoạn nội dung, tùy vào tình huống và yêu cầu của bạn. Chúc các bạn thành công nhé, hihi
Câu hỏi thường gặp
Để ẩn nội dung, bạn có thể sử dụng shortcode [ẩn]
trong WordPress. Với mã này, nội dung sẽ chỉ hiện khi người dùng đã đăng nhập.
Thêm đoạn mã shortcode [ẩn]
vào file functions.php
của theme, sau đó sử dụng [ẩn]Nội dung của bạn[/ẩn]
trong bài viết để ẩn phần nội dung đó.
Cài đặt shortcode [ẩn]
vào file functions.php
. Sau khi thêm mã, sử dụng [ẩn]
để bao quanh nội dung bạn muốn ẩn, và nội dung sẽ chỉ hiển thị cho người dùng đăng nhập.
Sử dụng shortcode [ẩn]
cho các đoạn nội dung cần ẩn và Meta Box cho toàn bộ bài viết. Thêm mã vào functions.php
để thực hiện.
Đầu tiên, thêm mã tạo Meta Box vào file functions.php
. Meta Box này cho phép bạn kiểm soát cài đặt ẩn bài viết cho người chưa đăng nhập.
Thêm mã restrict_content_for_guests
vào functions.php
, và chỉ cần bật Meta Box cho các bài viết mà bạn muốn yêu cầu đăng nhập.
Mở file functions.php
, thêm đoạn mã định nghĩa shortcode [ẩn]
, lưu lại và sử dụng [ẩn]
trong các bài viết.
Trong mã shortcode [ẩn]
, thiết lập đoạn thông báo yêu cầu đăng nhập để xuất hiện khi người dùng chưa đăng nhập.
Kích hoạt Meta Box “Chỉ dành cho thành viên” trong quá trình chỉnh sửa bài viết để ẩn toàn bộ bài viết cho người chưa đăng nhập.
Thêm đoạn mã tạo Meta Box vào functions.php
. Khi soạn bài viết, đánh dấu vào ô “Chỉ dành cho thành viên” để ẩn bài viết.
Sử dụng hàm is_user_logged_in()
để kiểm tra xem người dùng đã đăng nhập hay chưa và hiển thị nội dung phù hợp.
Dùng shortcode
bao quanh phần nội dung muốn ẩn, đoạn nội dung này sẽ chỉ hiện khi người dùng đăng nhập.
Thêm mã PHP định nghĩa shortcode vào file functions.php
của theme. Lưu file để kích hoạt shortcode trên trang web.
Sử dụng hàm save_post
để lưu giá trị Meta Box. Đoạn mã này sẽ lưu giá trị Meta Box khi bạn nhấn nút “Lưu” hoặc “Cập nhật” bài viết.
Đúng nhé, khi thành viên đăng nhập thì những nội dung bên trong shortcode sẽ được hiển thị, còn khi thành viên chưa đăng nhập hoặc thoát tài khoản thì sẽ không thể xem được nội dung.
- Cách Code Chức Năng Trang Slider Hình Ảnh Pokemon Cực Xịn
- Giới Thiệu Về Mua Theme WordPress Giá Rẻ Và Plugin Flash Sale
- Hướng Dẫn Tạo Gallery 3D Bằng HTML, CSS và JavaScript
- Sharecode bắt buộc xác minh tài khoản người dùng qua OTP gmail miễn phí
- [Thủ thuật wordpress] code chức năng hiển thị thông báo mua hàng ảo không dùng plugin