Wordpress Menu Customizer

时间:2016-11-03 作者:DucatiNerd

我正在研究一个主题,我希望允许用户为导航菜单项指定其他选项。

开箱即用,用户可以指定应用于nav菜单中LI元素的css类。然而,我想允许为链接指定css类。

我考虑过不同的选择。我可以使用options框架,也可以使用customizer API,而不依赖任何插件。这两种方法的问题是,我需要引入一个新的自定义菜单部分来处理菜单。我不想这样做,因为在后端已经有菜单自定义程序。我只想为链接css类添加一个选项。

到目前为止,我还没有找到一种方法,可以在WP启动时,连接到wordpress自己的定制程序中,而不会有中断的风险。

谁能给我指出正确的方向,我该如何处理这个问题?

谢谢

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

你可以用两种方法来做这件事。

将新节添加到现有节nav_menus panel 然后将控件添加到部分:


$wp_customize->add_section(\'my_section\', array(
    \'title\'    => \'My options\',
    \'panel\' => \'nav_menus\'
));
$wp_customize->add_setting(\'my_setting\', array(
    \'type\'              => \'theme_mod\',
    \'settings\'          => \'my_section\',
    \'capability\'        => \'edit_theme_options\',
    \'sanitize_callback\' => \'sanitize_my_setting\'
));
$wp_customize->add_control(\'my_control\', array(
    \'label\'   => \'My option\',
    \'section\' => \'my_section\',
    \'type\'    => \'text\'
));

2。向现有控件添加新控件menu_locations section:

<小时>

wp_customize->add_setting(\'my_setting\', array(
    \'settings\'          => \'menu_locations\',
    \'capability\'        => \'edit_theme_options\',
    \'sanitize_callback\' => \'sanitize_my_setting\'
));

$wp_customize->add_control(\'my_control\', array(
    \'label\'   => \'My Option\',
    \'section\' => \'menu_locations\',
    \'type\'    => \'text\'
));
如果我是你,我会选择第一个解决方案,因为它使定制程序更干净,但这取决于你的需要。我希望这会有帮助

相关推荐

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

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