菜单项中的HTML在保存时消失

时间:2016-10-11 作者:powerbuoy

我创建了一个菜单,它需要有图标,而不是纯文本。不幸的是,WP提供的“CSS类”选项将类添加到li 而不是a 因此,如果在此处添加图标,则无法单击该图标。此外,如果我添加了一个没有标题的菜单项(因为我的菜单应该只有图标),则在保存菜单时,菜单项将完全消失。

为了解决这个问题,我只需将“导航标签”设置为<span class="icon-facebook" title="Facebook"></span>. 这很好用,我已经这样做了很多年了。

然而,我今天注意到的是,如果管理菜单的用户不是管理员,他就无法保存标签中带有HTML的菜单项。这会导致HTML被剥离,“导航标签”为空,因此WP会在保存菜单时完全删除该菜单项。

非管理员通常无权访问菜单管理屏幕,但我已通过以下方式为编辑器提供了该功能:

$editorRole = get_role(\'editor\');

if (!$editorRole->has_cap(\'edit_theme_options\')) {
    $editorRole->add_cap(\'edit_theme_options\');
}
为什么WP会剥离HTML,我如何防止它这样做?

enter image description here

1 个回复
SO网友:Enrico Cassinelli

如果要将图标作为内容添加到伪元素中,我会选择a 通过指定在WP菜单编辑器中插入的类(因此在li):

    /*hide the menu text*/
    li.your-class a {
        visibility: hidden;
     }

     /*create the icon and make it visible*/
     li.your-class a::before {
       content: "icon code";
       visibility: visible;
     }

相关推荐

用标准的干净文件替换NAV-menus.php文件?

我是一个自学成才的wordpress网站设计师,请原谅我的无知。我为一个客户开发的几个网站最近被一个印尼黑客组织破坏了(很有趣!)。客户端没有更新wordpress安装和其他一些危及安全的事情。遗憾的是,没有网站的清理备份。网络主机给了我一个包含恶意软件扫描结果的文本文件。看起来很多受影响的文件都是导航菜单。网站的php文件。文本文件中显示的扫描结果示例如下:“[主目录]/[网站文件夹名称]/wp includes/nav-menu.php:SL-php-INJECTOR-1-ejw.UNOFFICIAL