我收到错误:" Stray end tag选项。"我可以告诉它来自我的手机菜单。
出于某种原因,我的代码最后添加了额外的标签。以下是w3验证网站向我展示的一些预览。
<option value="">— Single Post Layouts<option value="http://domain.com/mag/portfolio/future-semiotics/">—— Full Image Post</option></option></option>
奇怪的是,它并没有将它添加到每一个选项中。
我一直在搜索我的代码,我在自定义函数文件中找到了它。
class gbx_Walker_Nav_Menu_Dropdown extends Walker_Nav_Menu {
function start_lvl(&$output, $depth) {
$indent = str_repeat("\t", $depth); // don't output children opening tag (`<ul>`)
}
function end_lvl(&$output, $depth) {
$indent = str_repeat("\t", $depth); // don't output children closing tag
}
function start_el(&$output, $item, $depth, $args) {
$url = '#' !== $item->url ? $item->url : '';
$item->title = str_repeat("—", $depth).' '.$item->title;
$output .= '<option value="' . $url . '">' . $item->title;
}
function end_el(&$output, $item, $depth) {
$output .= "</option>"; // replace closing </li> with the option tag
}
}
对于我需要更改以解决此问题的任何帮助都会很棒。
编辑:此代码在我的header.php中我不知道它是否会有所帮助。
<div class="mobile-nav-holder visible-xs">
<?php wp_nav_menu(array('theme_location' => 'main_navigation', 'container_class' => 'mobile-mainmenu', 'walker' => new gbx_Walker_Nav_Menu_Dropdown(),'items_wrap' => '<select><option selected>Navigation</option>%3$s</select>')); ?>
</div>
答案 0 :(得分:1)
更新您的此功能
function start_el(&$output, $item, $depth, $args) {
$url = '#' !== $item->url ? $item->url : '';
$item->title = str_repeat("—", $depth).' '.$item->title;
$output .= '<option value="' . $url . '">' . $item->title.'</option>';
}
并删除或不使用function end_el(&$output, $item, $depth)
它会处理你的输出
<option value="">— Single Post Layouts</option>
<option value="http://domain.com/mag/portfolio/future-semiotics/">—— Full Image Post</option>
答案 1 :(得分:0)
你做错了。使用缩进手动格式化输出,您将得到:
<option value="">— Single Post Layouts
<option value="http://domain.com/mag/portfolio/future-semiotics/">—— Full Image Post</option>
</option>
</option>
这个类应该生成嵌套结构,并且选项不应该像这样嵌套