复制整个导航菜单最简单的方法是什么?

时间:2011-09-21 作者:cwd

复制整个导航菜单的最简单方法是什么?我不在乎它是否涉及SQL命令或其他什么。我只是想复制一些非常大的菜单。我没有看到这样做的插件。

为了澄清,我想复制菜单,以便对其进行一些编辑,并将其用作其他地方的辅助菜单。我不想两次显示菜单。

2 个回复
最合适的回答,由SO网友:Marcus Pope 整理而成

更新:“最简单”的方法是使用我的新插件:http://wordpress.org/extend/plugins/enhanced-menu-editor/

它还没有被批准,但一旦批准,我就会发布这个小部件。它不仅允许复制菜单,还可以将在菜单编辑器中建立的菜单结构与页面本身的页面继承权限同步。因此,您可以使用拖放式ajax coolness,而不是手动编辑数百个页面。

旧答案:

“最简单”的方法是使用代码。您需要使用两个函数:

wp_create_nav_menu() 它创建菜单本身并返回menu\\u idwp_update_nav_menu_item() 如果为菜单项id参数传入0,将创建一个新的菜单项。

然后,您可以使用wp\\u nav\\u menu walker类来迭代菜单中的每个现有项。这个网站将为你提供一个很好的参考点。

http://www.kriesi.at/archives/improve-your-wordpress-navigation-menu-output

因此,首先调用创建导航菜单功能。

然后在给定页面上实现导航助行器。在walker类的start\\u el函数中,您可以访问$item参数,该参数允许您使用与现有菜单相同的属性调用wp\\u update\\u nav\\u menu\\u item(),但只需传递0而不是项的真实id,这将创建一个新的菜单项。

您需要考虑的唯一其他属性是menu-item-parent-id 因为您希望它引用新创建的菜单项,而不是另一个菜单上的旧菜单项。为此,您需要创建一个数组来跟踪旧id到新id。

如果您想了解此解决方案的具体示例,请发送电子邮件至Marcuscope。我会看看我能做些什么。

希望有帮助-马库斯

SO网友:AndyBeard

所以我也遇到了类似的问题

我想创建许多基于权限显示的菜单。。。很多项目都是重复的,所以简单的方法可能是以某种方式复制已经存在的东西

然后,我需要将所有这些菜单迁移到多个共享相同权限的博客。

但我只是一个半心半意的程序员。

所以这是一个笨拙的解决方案,但它似乎是可行的,不需要编程

WP有一个导出功能——如果你有一个干净的博客(甚至可能没有),那么所有菜单项似乎都列在导出文件的同一部分。

如果你正在处理一个需要更改的博客,那么可能只有两件事,因为由于重复的slug,帖子和页面将被跳过

这是菜单自定义类别的定义。您需要更改slug和CDATA(在我的示例中,其中是“FA”)

<wp:term><wp:term_id>3</wp:term_id><wp:term_taxonomy>nav_menu</wp:term_taxonomy><wp:term_slug>FA</wp:term_slug><wp:term_name><![CDATA[FA]]></wp:term_name></wp:term>

接下来,您需要搜索并替换与该段代码/类别相关的所有菜单项。

<category domain="nav_menu" nicename="FA"><![CDATA[FA]]></category>

再次寻找“FA”

使用干净的文件名保存XML。

然后使用WP导入器插件导入XML

YMMV,但WFM,为我节省了大量时间

结束

相关推荐

在WordPress帖子中编写MySQL和PHP代码

我在wordpress上写php或mysql代码,但最后当我点击publish时,它给出了一个服务器错误:500,我还尝试将代码放在[代码][代码]标记下。什么都没有发生,但当我删除代码并点击publish时,它就工作了有什么想法吗伙计们在等着帮忙