Cách thêm các mục tùy chỉnh vào các menu WordPress cụ thể

Các menu WordPress là tuyệt vời. Giao diện kéo và thả giúp các nhà phát triển và người dùng chủ đề WordPress thực sự dễ dàng. Trước đây, chúng tôi đã chỉ cho bạn cách thêm menu tùy chỉnh trong WordPress cùng với cách thiết kế menu tùy chỉnh. Một điều bị hạn chế trong giao diện trực quan của các menu là bạn chỉ có thể thêm liên kết (trang, danh mục hoặc liên kết tùy chỉnh). Điều gì nếu bạn muốn thêm một mục tùy chỉnh vào menu WordPress của bạn? Có thể bạn muốn thêm một thanh tìm kiếm hoặc liên kết đăng nhập / đăng xuất, ngày hôm nay hoặc bất cứ thứ gì khác trong menu WordPress. Chỉ vì không có giao diện trực quan không có nghĩa là không thể. Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách bạn có thể sử dụng wp_nav_menu_items Móc để thêm các yếu tố tùy chỉnh cho tất cả hoặc các menu WordPress cụ thể.

Lưu ý: Hướng dẫn này dành cho các nhà phát triển chủ đề WordPress, vì vậy bạn sẽ biết được html / css cơ bản và hiểu biết công bằng về cách các chủ đề WordPress hoạt động.

Rõ ràng, bạn phải bật menu tùy chỉnh trên các chủ đề của mình trước khi có thể tiếp tục.

Hãy bắt đầu với những điều cơ bản. Chúng ta cần thêm bộ lọc của riêng mình vào wp_nav_menu_items móc. Một ví dụ sẽ như thế này:

add_filter( 'wp_nav_menu_items', 'your_custom_menu_item', 10, 2 );
function your_custom_menu_item ( $items, $args ) {
    if (is_single() && $args->theme_location == 'primary') {
        $items .= '
  • Hiển thị bất cứ điều gì
  • ‘;
        }
        trả lại các mặt hàng $;
    }

    Bây giờ, như bạn có thể thấy, bạn có thể sử dụng các câu lệnh có điều kiện cùng với đối số location_topic. Điều này cho phép bạn nhắm mục tiêu một vị trí menu cụ thể với bất kỳ điều kiện nào bạn muốn. Nếu bạn không muốn tuyên bố có điều kiện, bạn không phải sử dụng nó. Chỉ cần thêm nó vào một vị trí menu cụ thể hoặc ngược lại.

    Bây giờ bạn đã thấy một ví dụ cơ bản, hãy để chúng tôi chỉ cho bạn một số ví dụ cụ thể về cách nó sẽ hoạt động.

    Thêm liên kết đăng nhập / đăng xuất vào một menu WordPress cụ thể

    Nếu bạn muốn cung cấp cho người dùng khả năng đăng nhập / đăng xuất, thì một nơi bạn có thể thêm các liên kết sẽ nằm trong menu tùy chỉnh của bạn. Đoạn mã dưới đây sẽ hiển thị các liên kết đăng nhập / đăng xuất cho người dùng của bạn một cách thích hợp trong vị trí menu: chính. Bạn có thể thay đổi vị trí menu nếu bạn muốn.

    add_filter( 'wp_nav_menu_items', 'add_loginout_link', 10, 2 );
    function add_loginout_link( $items, $args ) {
        if (is_user_logged_in() && $args->theme_location == 'primary') {
            $items .= '
  • Đăng xuất
  • ‘;
        }
        otherif (! is_user_logged_in () && $ args-> theme_location == ‘chính’) {
            $ vật phẩm. = ‘

  • Đăng nhập
  • ‘;
        }
        trả lại các mặt hàng $;
    }

    Thêm một thanh tìm kiếm vào một menu cụ thể

    Bạn có muốn thêm một thanh tìm kiếm vào một menu cụ thể? Thôi không tìm đâu xa. Bạn có thể làm điều này bằng cách dán đoạn mã sau:

    add_filter('wp_nav_menu_items','add_search_box_to_menu', 10, 2);
    function add_search_box_to_menu( $items, $args ) {
        if( $args->theme_location == 'primary' )
            return $items."

    “;

        trả lại các mặt hàng $;
    }

    Thêm ngày hôm nay vào một menu WordPress cụ thể

    Đoạn mã dưới đây sẽ thêm ngày hôm nay vào menu WordPress của bạn. Bạn có thể sử dụng sổ tay Ngày hôm nay của chúng tôi để sửa đổi mã nếu bạn muốn.

    add_filter('wp_nav_menu_items','add_todaysdate_in_menu', 10, 2);
    function add_todaysdate_in_menu( $items, $args ) {
        if( $args->theme_location == 'primary')  {
    		
    		$todaysdate = date('l jS F Y');
            $items .=  '
  • ‘. $ todaydate. ‘
  • ‘;

    }
        trả lại các mặt hàng $;
    }

    Chúng tôi hy vọng bài viết này cho phép các nhà phát triển mở rộng chức năng của các chủ đề của họ.