Hoàng Web

Thiết Kế Website WordPress

  • Kho giao diện
  • Dịch Vụ
    • Thiết kế web giá rẻ
    • Thiết kế website WordPress
    • Hosting Miễn Phí 100GB
    • Tích hợp thanh toán MoMo, ViettelPay, Vietcombank, MB..
    • Tối ưu Google PageSpeed
    • Sửa lỗi nâng cấp website
    • Viết plugin WordPress
    • Code Tool theo yêu cầu
  • Bảng giá
  • Quy trình làm việc
  • Giới thiệu
  • Liên Lạc
Trang chủ » Wordpress » Thêm icons cho wp_nav_menu trong wordpress

Thêm icons cho wp_nav_menu trong wordpress

Chủ Nhật, 26/10/2014 by Hoàng Quách

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Trong bài trước, mình có tutorial hướng dẫn cách tùy biến trường cho wp_nav_menu, bài hôm nay mình xin giới thiệu với các bạn một plugin tạo ảnh icon cho menu item sử dụng api tạo custom field nav menu.

Trước tiên, bạn tải và cài đặt plugin Menu Icons. Sau khi kích hoạt plugin, bạn vào trang sửa menu. Có thêm mục icon cho phép bạn chọn biểu tượng cho item đó, để thêm icon mới bạn nhấn vào ‘Select’.
menu-icons-1

menu-icons-2

Plugin hỗ trợ nhiều hình icons với nhiều dịch vụ khác nhau như: FontAwesome, Dashicons, Elusive,..ngoài ra bạn có thể sử dụng mọi ảnh ngoài được upload trong media wordpress.

Các dịch vụ được hỗ trợ được kích hoạt trong Metabox “Menu Icons Settings”.
menu-icons-settings
Bạn có thể loại bỏ một số dịch vụ icons không muốn sử dụng bằng cách bỏ chọn vào dịch vụ đó, trong cửa sổ chọn icon sẽ nội dung icons của dịch vụ sẽ được loại bỏ.

Bạn cũng có thể làm điều này với hook menu_icons_types, xóa tên dịch vụ khai báo trong tham số mảng $types như dưới đây.

/**
 * Remove one or more icon types
 *
 * Uncomment one or more line to remove icon types
 *
 * @param  array $types Registered icon types
 * @return array
 */
function myplugin_remove_menu_icons_type( $types ) {
    # Dashicons
    //unset( $types['dashicons'] );

    # Elusive
    //unset( $types['elusive'] );

    # Font Awesome
    //unset( $types['fa'] );

    # Foundation
    //unset( $types['foundation-icons'] );

    # Genericons
    //unset( $types['genericon'] );

    # Image
    //unset( $types['image'] );

    return $types;
}
add_filter( 'menu_icons_types', 'myplugin_remove_menu_icons_type' );

Nếu bạn không cho người dùng lựa chọn dịch vụ icons, có thể để ẩn mục tùy chọn dịch vụ “Menu Icons settings” tại trang nav-menus.php. Để tắt cài đặt này bạn chỉ cần chèn đoạn code sau vào functions.php

add_filter( 'menu_icons_disable_settings', '__return_true' );

Tùy biến nâng cao – Tạo nhóm icons mới
Mỗi nhóm dịch vụ icons được viết vào file có tên type-*.php trong thư mục includes của plugin. Bạn có thể định nghĩa nhóm icons mới với tên file mới, trong đó * là tên dịch vụ. Tham khảo nội dung các file nạp icons có sẵn trong thư mục này.

Plugin có cách viết mở rộng cho phép bạn tùy biến nhiều hơn, ví dụ để thay file css ngoài load trực tiếp từ CDN. Đoạn code sau mình đổi lại stylesheet lấy CSS trực tiếp từ ‘bootstrapcdn’ với ‘font-awesome’ phù hợp với phiên bản sử dụng trong plugin.

/**
 * Modify icon type properties
 *
 * See myplugin_remove_menu_icons_type() above for the icon type keys
 *
 * @param  array  $props    Icon type properties
 * @param  object $instance Icon type registration instance
 * @return array
 */
function _my_fontawesome_props( $props, $instance ) {
    $props['stylesheet'] = sprintf(
        '//maxcdn.bootstrapcdn.com/font-awesome/%s/css/font-awesome.min.css',
        $instance->version
    );

    return $props;
}
add_filter( 'menu_icons_fa_props', '_my_fontawesome_props', 10, 2 );

Lỗi thường gặp

Icon không hiển thị
Nếu bạn tùy biến menu với class walker, thì có thể sẽ không hiển thị, vì plugin can thiệp vào những hook mặc định được sử dụng trong Walker_Nav_Menu đảm bảo bạn không bớt xén hooks.

Vị trí hiển thị icons không đúng
Bạn có thể sử dụng thêm css để hiển thị icon như mong muốn. Viết css vào stylesheet chính của theme hoặc custom code css cho website rất đơn giản với plugin Simple Custom CSS plugin.
Simple-Custom-CSS

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 Hoangweb trên Twitter và Facebook

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Chuyên mục: Wordpress Tìm kiếm: wp_nav_menu

Tôi giúp gì cho bạn?

HOÀNG WEB

Địa chỉ: Tây Sơn, Phường Quang Trung, Quận Đống Đa, Hà Nội

Hotline: 0987 342 124 – 0868 292 303 (8h:00 – 21h:00)

Email: [email protected]

Website: www.hoangweb.com

KẾT NỐI VỚI TÔI

  • Facebook
  • GitHub
  • YouTube

SẢN PHẨM

  • Plugin Thanh Toán Quét Mã QR Code Tự Động
  • WP2Speed – Tối ưu Google Speed
  • 23WebHost – Hosting Miễn Phí 100GB

LIÊN KẾT

  • Có nên thuê thiết kế website giá rẻ?
  • Hướng dẫn thanh toán
  • Chính sách hoàn tiền
  • Trung tâm hỗ trợ

Copyright © 2023 | All rights reserved | HOANG WEB
Mọi hình thức sao chép nội dung trên website này mà chưa được sự đồng ý đều là trái phép.