如何在没有插件的情况下复制WordPress菜单?

时间:2018-06-14 21:26:19

标签: javascript wordpress

出于多种原因,仅仅为了复制内容而在多个站点上安装插件并不理想。对于页面/帖子,它很容易获取帖子内容和复制+粘贴(即使使用页面构建器,内容在底层文本区域中可用)。另一方面,菜单是一种痛苦。你复制菜单的goto方法是什么?

1 个答案:

答案 0 :(得分:0)

这就是我今天要解决的问题,即通过JavaScript /没有插件来解决WordPress菜单的复制问题。

首先导航到要复制的菜单并将其粘贴到控制台中。

var items = jQuery('#menu-to-edit li');
var json = [];

jQuery.each(items, function(i, item) {
    item = jQuery(item);
    var title = item.find('.edit-menu-item-title').val();
    var url = item.find('.edit-menu-item-url').val();
    var classes = item.find('.edit-menu-item-classes').val();
    var description = item.find('.edit-menu-item-description').val();

    var menuitem = {"title" : title, "url" : url, "classes" : classes, "description" : description};
    json.push(menuitem);
});
JSON.stringify(json);

复制该输出并导航到新菜单 - 将内容粘贴到下面的解析语句中:

var json = JSON.parse('PASTED DATA HERE');

function addItem(item)
{
    jQuery('#custom-menu-item-url').val(item.url);
    if (item.url == "")
    {
        item.url = "#";
    }
    jQuery('#custom-menu-item-name').val(item.title);
    jQuery('#submit-customlinkdiv').click();
}

然后只需将元素从json元素中移出并进入addItem函数。

addItem(json.shift());

冲洗并重复,直到您的物品被添加。

这方面有很多优化空间,例如它可以添加类/描述,以正确的深度重新排序菜单项,添加扩展属性或监视添加菜单项表单并自动为您添加下一个项目 - 可以成为一个方便的书签来击败像那些一样的一次性插件做简单的菜单副本。