TODO: To change the header's content go to Dr.Explain menu Options : Project Settings : HTML (CHM) Export : Setup HTML Template and Layout
×
Menu
Index

Dàng buộc Menu và đối tượng

Lấy dữ liệu menu (nav menu item) liên kết với trang/post hiện tại.
Hàm wp_get_nav_menu_items kế thừa tham số từ WP_Query. Đoạn code sau lựa chọn tất cả menu_items liên kết vào trang hiện tại từ menu bạn chỉ định vào biến $menu_id.
$menu = wp_get_nav_menu_items($menu_id,array(
   'posts_per_page' => -1,
   'meta_key' => '_menu_item_object_id',
   'meta_value' => $post->ID // the currently displayed post
));
var_dump($menu[0]->ID);
Trong đó:
 
Ở hình trên ta có $menu_id = 'menu-left'.
 
Đối tượng trả về $menu chứa thông tin dữ liệu đối tượng có gán vào item được lựa chọn. Ví dụ nếu là kiểu page/post/custom post type.
WP_Post Object
(
    [ID] => 4796
    ..   
    [post_title] => Hosting Cá Nhân
    ...
    [post_name] => hosting-ca-nhan
    ...
    [post_type] => nav_menu_item
    ...
    [menu_item_parent] => 4320
    [object_id] => 4785
    [object] => page
    [type] => post_type
    [type_label] => Trang
    [url] => http://www.hoangweb.com/hosting-gia-re
    ...
)
 
Dữ liệu gán vào menu item.
- Lấy post ID gán vào menu item xác định.
$post_id = get_post_meta( $menu_item_id, '_menu_item_object_id', true );
 
- Trả về kiểu dữ liệu post type xác định vào menu item.
$post_type = get_post_meta( $menu_item_id, '_menu_item_object', true );
 
- Lấy các thông tin khác liên quan đến menu item.
$custom = get_post_custom($menu_item_id);
 
kết quả mẫu:
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] =>
        )
 
)
 
Ví dụ:
<?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>
Made with help of Dr.Explain

Unregistered version