在ZURB基金会标题中显示WordPress主菜单
我正在创建一个基于Zurb的基础的主题。 我几乎已经把所有的东西都设置好了,准备开始使用CSS,但是我在如何让“主菜单”显示在顶部栏上时遇到了问题。 对于突出显示的链接(可能与我们联系或类似链接),我想保留“左导航按钮”,但我想替换WordPress主菜单ul class=“right”中的当前内容。 以下是我在当前标题id=“masthead”在ZURB基金会标题中显示WordPress主菜单,wordpress,menu,zurb-foundation,Wordpress,Menu,Zurb Foundation,我正在创建一个基于Zurb的基础的主题。 我几乎已经把所有的东西都设置好了,准备开始使用CSS,但是我在如何让“主菜单”显示在顶部栏上时遇到了问题。 对于突出显示的链接(可能与我们联系或类似链接),我想保留“左导航按钮”,但我想替换WordPress主菜单ul class=“right”中的当前内容。 以下是我在当前标题id=“masthead” 您需要使用wp\u导航菜单() 您还需要使用walker来定制wp\u nav\u menu()的输出,以匹配基金
-
-
您需要使用wp\u导航菜单()
您还需要使用walker来定制wp\u nav\u menu()
的输出,以匹配基金会顶栏的输出
您可以将其添加到funtions.php中
class guts_top_bar_walker extends Walker_Nav_Menu {
function display_element( $element, &$children_elements, $max_depth, $depth = 0, $args, &$output ) {
$element->has_children = !empty($children_elements[$element->ID]);
$element->classes[] = ( $element->current || $element->current_item_ancestor ) ? 'active' : '';
$element->classes[] = ( $element->has_children ) ? 'has-dropdown' : '';
parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
}
function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
$item_html = '';
parent::start_el( $item_html, $item, $depth, $args, $id );
$output .= ($depth == 0) ? '<li class="divider"></li>' : '';
$classes = empty($item->classes) ? array() : (array) $item->classes;
if ( in_array( 'section', $classes ) ) {
$output .= '<li class="divider"></li>';
$item_html = preg_replace('/<a[^>]*>(.*)<\/a>/iU', '<label>$1</label>', $item_html);
}
$output .= $item_html;
}
function start_lvl( &$output, $depth = 0, $args = array() ) {
$output .= "\n<ul class=\"sub-menu dropdown\">\n";
}
}
即使您希望突出显示的链接保留在左侧部分,我建议您设置另一个菜单,以便您可以直接通过wordpress dash进行将来的更改,而不需要编辑主题
您可以在functions.php中注册如下新菜单区域:
register_nav_menu( 'primary-left', __( 'Left Navigation Menu', 'guts' ) );
更多信息请点击此处:
<section class="top-bar-section">
<?php wp_nav_menu(array('container' => false, 'menu_class' => 'left', 'theme_location' => 'primary-left', 'fallback_cb' => false, 'walker' => new guts_top_bar_walker() )); ?>
<?php wp_nav_menu(array('container' => false, 'menu_class' => 'right', 'theme_location' => 'primary', 'walker' => new guts_top_bar_walker() )); ?>
</section>
register_nav_menu( 'primary-left', __( 'Left Navigation Menu', 'guts' ) );