带有Walker类的定制菜单--$db_field应该是什么?

时间:2016-04-14 作者:Jelnet

我正在尝试使用Walker类创建自己的自定义菜单,在尝试弄清楚发生了什么的过程中,我正在尝试复制默认情况下wp\\u nav\\u menu()的功能,因此,我得到了以下结果:

class My_Admin_Walker extends Walker
{
    public $db_fields = array (\'parent\' => \'parent\', \'id\' => \'menu_id\');
}

function my_admin(  ){
   //$list = wp_nav_menu( array( \'walker\' => new My_Admin_Walker() ));//produces no output 
   //$list = wp_nav_menu();//outputs links to pages

   return $list;
}

 my_admin();
当我通过我自己的My_Admin_Walker 分类至wp_nav_menu 它不产生输出。所以我想我需要设置$db_fields 去做点什么。沃克医生说:

每个键的值应该是分别包含父id和项id的对象属性的名称

但我一直在想$db_fields 应设置为,以生成默认输出或任何其他输出。我尝试了wp数据库中的字段名称,但迄今为止没有成功。我在哪里可以找到它所说的这些对象属性?

谢谢你的帮助!

1 个回复
SO网友:darrinb

如果要构建自己的自定义导航菜单,应扩展Walker_Nav_Menu 类,而不是Walker

构建自定义菜单漫游器时$db_fields 应该是默认值Walker_Nav_Menu 类具有:

$db_fields = array (\'parent\' => \'menu_item_parent\', \'id\' => \'db_id\');
为菜单项构建导航链接时parent 字段映射到_menu_item_menu_item_parent 如果菜单项有父项,则发布元字段。

这个db_id 映射到postID 菜单项的。

退房wp_setup_nav_menu_item() 以便更好地了解正在发生的情况。https://developer.wordpress.org/reference/functions/wp_setup_nav_menu_item/

相关推荐

WordPress中声明SplitMenuWalker::Walk($Elements,$max_Depth)时出现警告

我开始在WordPress网站上收到以下错误:警告:SplitMenuWalker::walk($elements,$max\\u depth)的声明应与/home/relati67/public\\u html/wp content/themes/mentis/inc/mega menu/split menu中的walk::walk($elements,$max\\u depth,$args)兼容。php第0行我不知道在这里该怎么办。我发现了一个具有类似内容的线程,但错误指向特定行(不是第0行),并且不