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 » [WordPress] Lấy dữ liệu post_type liên kết với nav_menu_item

[WordPress] Lấy dữ liệu post_type liên kết với nav_menu_item

Thứ Tư, 08/10/2014 by Hoàng Quách

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

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!

Nếu bạn thích bài viết này, hãy ủng hộ chúng tôi bằng cách đăng ký nhận bài viết mới ở bên dưới và đừng quên chia sẻ kiến thức này với bạn bè của bạn nhé. Bạn cũng có thể theo dõi blog này 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.