2012-03-12 80 views
1

我正試圖從頁面中將自定義字段信息導入導航菜單。我以前遇到過這個問題......我只是不「獲取」步行者菜單以及它的工作原理。導航菜單中的Wordpress自定義字段信息?

基本上,除了網頁的標題,我想擁有它輸出的自定義字段的圖像和圖像描述的URL和創建鏈接到一個正常的WP頁面的菜單項。

在導航菜單中,template.php文件中,我試圖通過添加get_post_custom_keys()這樣沒有成功修改start_el功能:

$item_output .= '<a'. $attributes .'>'; 
$item_output .= get_post_custom_values("product_image", $item->ID); 
$item_output .= $args->link_before . apply_filters('the_title', $item->title, $item->ID) . $args->link_after; 

我也試過get_post_meta();和其他有限的成功。我已經能夠做的最好的是通過指定一個硬整數值來獲得在所有鏈接中重複的圖像之一。或者,我已經能夠讓它在文本中輸出正確的帖子/頁面值,但沒有圖像。

任何人都知道解決的。我做錯了什麼?

+0

任何人?真的可以使用一些幫助。 – 2012-03-13 08:05:41

回答

0

它可能會更容易通過你的導航菜單遍歷和動態渲染。下面的代碼將讓你遍歷給定的導航菜單分配給你將在你的functions.php文件中註冊的導航菜單位置:

<ul id="some-menu-id" class="my-fancy-menu"> 
<?php 
    $menu_name = 'primary'; 
    if (($locations = get_nav_menu_locations()) && isset($locations[ $menu_name ])) { 
     $menu = wp_get_nav_menu_object($locations[ $menu_name ]); 
     $menu_items = wp_get_nav_menu_items($menu->term_id); 
     foreach ((array) $menu_items as $key => $menu_item) { 
      // at this point you can get the custom meta from the page 
      $image = get_post_meta($menu_item->object_id, '_custom_field_image_url', true); 
      $image_description = get_post_meta($menu_item->object_id, '_custom_field_image_description', true); 
      // here we are getting the title and URL to the page 
      $title = $menu_item->title; 
      $url = $menu_item->url; 
      $slug = basename($menu_item->url); 
      // this allows us to add a current class 
      if (basename($_SERVER['REQUEST_URI']) == $slug) { $current = ' current-menu-item'; } else { $current = ''; } 
      $menu_list .= '<li class="page-id-'.$menu_item->object_id.$current.'"><a href="' . $url . '">' . $title . '</a><br /><p>'.$image_description.'<br />'.$image.'</p></li>'; 
     } 
    } 
    echo $menu_list; 
?> 
</ul>