当循环所有菜单项并使用ID时,get_post_meta保持为空

时间:2017-02-20 作者:woony

我正在尝试创建某种自定义菜单。其中,我在主菜单中列出我的页面的所有标题,并显示每个页面的元框值。出于某种原因,所有项目的get\\u post\\u meta都保持为空。我不明白为什么。

<?php
 $array_menu = wp_get_nav_menu_items(\'header-menu\');
    $menu = array();
    foreach ($array_menu as $m) {
        if (empty($m->menu_item_parent)) {
             ?>
             <h4><a href="<?php echo $m->url;?>"><?php echo $m->title;?></a></h4>
             <p>
                <?php echo get_post_meta($m->ID, \'meta_box_subtitle\', true); ?>
             </p>
<?php       
        }
    }
?>

1 个回复
最合适的回答,由SO网友:David Lee 整理而成

您正在发送ID 菜单项的ID 尝试使用url_to_postid() 像这样:

<?php
 $array_menu = wp_get_nav_menu_items(\'header-menu\');
    $menu = array();
    foreach ($array_menu as $m) {
        if (empty($m->menu_item_parent)) {
             ?>
             <h4><a href="<?php echo $m->url;?>"><?php echo $m->title;?></a></h4>
             <p>
                <?php global $wp_query;
                 $pageID = url_to_postid( $m->url );  
                 echo get_post_meta($pageID, \'meta_box_subtitle\', true); 
                ?>
             </p>
<?php       
        }
    }
?>

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在