这是我第一个涉及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_menuwp_nav_menu( array( \'walker\'=>new my_extended_walker() ) );
如果你做到了,你会没事的。我正在研究能够做到这一点的工作代码。我不知道
<p> 但标签在那里。您可能会得到无效的标记。