Hướng dẫn Thêm Chức Năng Hiển Thị Menu Chỉ Khi Đăng Nhập trong WordPress

22 Tháng 1, 2025

Trong bài viết này, chúng ta sẽ hướng dẫn bạn cách thêm một chức năng tùy chọn cho menu trong WordPress: chỉ hiển thị khi người dùng đã đăng nhập.

Chức năng này rất hữu ích nếu bạn muốn tạo các mục menu để truy cập nội dung đặc biệt chỉ dành cho người dùng đã đăng nhập.

Bước 1: Thêm Code Tùy Chỉnh Vào Tệp functions.php

Hãy sao chép và dán đoạn code dưới đây vào tệp functions.php của theme mà bạn đang sử dụng:

// Thêm meta box tùy chọn "Chỉ hiển thị khi đăng nhập"
add_action('wp_nav_menu_item_custom_fields', function ($item_id, $item, $depth, $args) {
    $is_logged_in_only = get_post_meta($item_id, '_menu_item_logged_in_only', true);
    ?>
    <p class="field-logged-in-only description description-wide">
        <label for="edit-menu-item-logged-in-only-<?php echo $item_id; ?>">
            <input type="checkbox" id="edit-menu-item-logged-in-only-<?php echo $item_id; ?>"
                   name="menu-item-logged-in-only[<?php echo $item_id; ?>]" value="1" <?php checked($is_logged_in_only, '1'); ?> />
            <?php _e('Chỉ hiển thị khi người dùng đã đăng nhập'); ?>
        </label>
    </p>
    <?php
}, 10, 4);

// Lưu giá trị meta "Chỉ hiển thị khi đăng nhập"
add_action('wp_update_nav_menu_item', function ($menu_id, $menu_item_db_id, $args) {
    if (isset($_POST['menu-item-logged-in-only'][$menu_item_db_id])) {
        update_post_meta($menu_item_db_id, '_menu_item_logged_in_only', 1);
    } else {
        delete_post_meta($menu_item_db_id, '_menu_item_logged_in_only');
    }
}, 10, 3);

// Lọc menu items dựa trên trạng thái đăng nhập
add_filter('wp_nav_menu_objects', function ($items, $args) {
    foreach ($items as $key => $item) {
        $is_logged_in_only = get_post_meta($item->ID, '_menu_item_logged_in_only', true);
        if ($is_logged_in_only && !is_user_logged_in()) {
            unset($items[$key]);
        }
    }
    return $items;
}, 10, 2);

Bước 2: Cập Nhật Menu trong WordPress Admin

  1. Truy cập WordPress Admin: Vào Giao diện > Menu.
  2. Tùy chọn cho từng mục menu:
    • Nhấp vào mỗi mục menu mà bạn muốn chỉ hiển thị khi đăng nhập.
    • Tích chọn vào “Chỉ hiển thị khi người dùng đã đăng nhập”.
    • Lưu lại menu.

Chức Năng Hoạt Động Như Thế Nào?

  • Khi người dùng đã đăng nhập, mục menu được tích chọn sẽ hiển thị.
  • Khi người dùng chưa đăng nhập, mục menu đó sẽ bị ẩn.

Tại Sao Lại Sử Dụng Chức Năng Này?

  1. Tăng cường trải nghiệm người dùng: Hiển thị chỉ những nội dung cần thiết, giảm đi ôn độ menu không cần thiết.
  2. Tính bí mật: Ẩn những liên kết quan trọng chỉ dành cho người dùng đã đăng nhập.
  3. Tuỳ chỉnh linh hoạt: Có thể dùng cho nhiều trường hợp khác nhau như trang thành viên, các trang thanh toán, hoặc tài liệu độc quyền.

Lời Khuyên Tối Ưu

  • Kiểm tra tính tương thích: Hãy đảm bảo theme của bạn đã sẵn sàng cho việc tùy chỉnh menu.
  • Sao lưu trước khi chỉnh sửa: Trước khi thay đổi tệp functions.php, hãy sao lưu lại tài liệu phòng trường hợp gây xung đột.

Với những bước đơn giản trên, bạn đã có thể tùy chỉnh menu WordPress để hiển thị nội dung theo nhu cầu. Hãy bắt tay thực hiện và tắng trải nghiệm của trang web của bạn ngay hôm nay!

Quảng Cáo

Blog ..

Hướng dẫn dịch vụ ..

Zalo
Proxy
VPS
Tài khoản
Hosting
Tên miền
Facebook