这是我第一个涉及WordPress的项目,我一直在尝试为页脚菜单创建自定义walker。
我基本上想从<ul> <li></li> </ul>
结构到a<p> <span></span> </p>
结构
菜单和内容正在显示文件,我可以调整start_el
和end_el
函数没有问题,因此我现在得到以下结果:
<ul> <span>*link*</span> <span>*link*</span> </ul>
这显然是一半,我已经写了
start_lvl()
和
end_lvl()
标签如下所示,但它们被WordPress忽略了-我没有在其中添加任何内容(甚至
die()
) 执行(这有点可疑),但我知道调用该类是因为
start_el()
作用
function start_lvl(&$output, $depth = 0, $args = array()) {
$output = "\\n<p class=\\"sub-menu\\">\\n";
}
function end_lvl(&$output, $depth = 0, $args = array()) {
$output .= "\\n</p>\\n";
}
有人知道为什么会这样吗?我是否错过了一些非常明显的事情!?
我正在用PHP在Apache上运行最新版本的WordPress5.3.6
如果有帮助的话。
提前感谢,
费利克斯:)
SO网友:s_ha_dum
好吧,我不确定我发布这篇文章时读错了什么,但你的整个班级应该是这样的:
class my_extended_walker extends Walker_Nav_Menu {
function start_lvl(&$output, $depth = 0, $args = array()) {
$output .= "\\n<p class=\\"sub-menu\\">\\n";
}
function end_lvl(&$output, $depth = 0, $args = array()) {
$output .= "\\n</p>\\n";
}
}
然后在调用时将“walker”作为参数传递
wp_nav_menu
wp_nav_menu( array( \'walker\'=>new my_extended_walker() ) );
如果你做到了,你会没事的。我正在研究能够做到这一点的工作代码。我不知道
<p>
但标签在那里。您可能会得到无效的标记。