Khi bạn lấy nội dung của nav_menu_item trong wp_nav_menu bởi hàm lấy dữ liệu post, VD get_posts nó chỉ trả về thông tin của item, còn những thông tin liên quan đến item như post type liên kết vào menu item thì làm sao để lấy chúng. Những dữ liệu liên kết đó gọi là custom fields.
Ví dụ bạn muốn lấy ID của trang có thể là một trong các kiểu (post/page/category/taxonomy/custom post type) liên kết với menu item không phải ID của nav_menu_item nhé, chúng ta có field ‘_menu_item_object_id’.
get_post_meta( $menu_item_id, '_menu_item_object_id', true );
Hay xác định post_type của trang menu, bạn sử dụng meta ‘_menu_item_object’
get_post_meta( $menu_item_id, '_menu_item_object', true );
Bạn cũng có thể lất toàn bộ fields khác của item với hàm get_post_custom
get_post_custom($menu_item);
Kết quả trả về mảng fields giống như sau:
Array ( [_menu_item_type] => Array ( [0] => taxonomy ) [_menu_item_menu_item_parent] => Array ( [0] => 25 ) [_menu_item_object_id] => Array ( [0] => 9 ) [_menu_item_object] => Array ( [0] => category ) [_menu_item_target] => Array ( [0] => ) [_menu_item_classes] => Array ( [0] => a:1:{i:0;s:8:"hoa-chat";} ) [_menu_item_xfn] => Array ( [0] => ) [_menu_item_url] => Array ( [0] => ) )
Tùy theo mục đích sử dụng những thông tin field này, ví dụ chúng ta tạo link URL cho menu item căn cứ vào post_type liên kết với menu đó. Xem ví dụ dưới đây:
<?php $menu=get_post($item_id); $post_id = get_post_meta( $item_id, '_menu_item_object_id', true ); $post_type = get_post_meta( $item_id, '_menu_item_object', true ); if($post_type=='post' ){ $url=get_permalink($post_id); } if($post_type=='category'){ $url=get_category_link($post_id); } ?> <a href="<?php echo $url?>"><h2><?php _e($menu->post_title,'hoangweb')?></h2></a>
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 Twitter và Facebook
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