你有很多选择。我的意思是,它可以通过css来实现。大多数人花了太多时间试图让wordpress变得更复杂,而我们认为它可以简化事情。很有可能,当你完成任务时,你会意识到仅仅使用html就可以在十分之一的时间内完成任务。
最简单的选择是只创建左右两个菜单,然后在其中添加图像:
<nav id="primary-navigation" class="site-navigation" role="navigation">
<?php wp_nav_menu( array( \'theme_location\' => \'left\', \'menu_class\' => \'nav-menu\' ) ); ?>
<a itemprop="url" href="http://www.example.com/" title="My Company"><img src="http://www.example.com" alt="My cool company" /></a>
<?php wp_nav_menu( array( \'theme_location\' => \'right\', \'menu_class\' => \'nav-menu\' ) ); ?>
</nav>
或者更酷的是,在你的主题定制器中添加一个上传器,从前端就可以完成。
菜单(可能位于header.php
):
<nav id="primary-navigation" class="site-navigation" role="navigation">
<?php wp_nav_menu( array( \'theme_location\' => \'left\', \'menu_class\' => \'nav-menu\' ) ); ?>
<?php if ( get_theme_mod( \'mytheme_logo\' ) ) : ?>
<a href=\'<?php echo esc_url( home_url( \'/\' ) ); ?>\' title=\'<?php echo esc_attr( get_bloginfo( \'name\', \'display\' ) ); ?>\' rel=\'home\'><img src=\'<?php echo esc_url( get_theme_mod( \'mytheme_logo\' ) ); ?>\' alt=\'<?php echo esc_attr( get_bloginfo( \'name\', \'display\' ) ); ?>\'></a>
<?php else : ?>
<hgroup>
<h1 class=\'site-title\'><a href=\'<?php echo esc_url( home_url( \'/\' ) ); ?>\' title=\'<?php echo esc_attr( get_bloginfo( \'name\', \'display\' ) ); ?>\' rel=\'home\'><?php bloginfo( \'name\' ); ?></a></h1>
<h2 class=\'site-description\'><?php bloginfo( \'description\' ); ?></h2>
</hgroup>
<?php endif; ?>
<?php wp_nav_menu( array( \'theme_location\' => \'right\', \'menu_class\' => \'nav-menu\' ) ); ?>
</nav>
然后将此添加到
functions.php
:
function themeslug_theme_customizer( $wp_customize ) {
$wp_customize->add_setting( \'mytheme_logo\' );
$wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, \'mytheme_logo\', array(
\'label\' => \'Logo\',
\'section\' => \'mytheme_logo_section\',
\'settings\' => \'mytheme_logo\',
) ) );
}
add_action(\'customize_register\', \'themeslug_theme_customizer\');
当你不需要的时候,不要把事情复杂化。
如果你问我的话,Walkers会让事情变得更复杂,因为它们相互覆盖,而且有所有改变菜单功能的酷插件,它们都不能一起工作。
但是,如果您不在乎,只需下载一个已经满足您需求的插件即可:
http://wordpress.org/plugins/menu-image/http://wordpress.org/plugins/nav-menu-images/screenshots/
就个人而言,我认为在菜单上使用短代码是最好的选择。你几乎可以用它们做任何你想做的事情,而不必浪费时间延长学步课程。
你是怎么做到的?选择要首先应用短代码的字段。这是描述字段的“walker”过滤器。无论如何,你可能不会使用它。还是让它有用吧。
Add this to you\'re functions.php:
function shortcode_menu_description( $item_output, $item ) {
if ( !empty($item->description)) {
$output = do_shortcode($item->description);
if ( $output != $item->description )
$item_output = $output;
}
return $item_output;
}
add_filter("walker_nav_menu_start_el", "shortcode_menu_description" , 10 , 2);
现在,您可以在描述字段中放置短代码,它将在菜单中输出它们。如果你有描述支持,它也不应该影响你的主题。
如何添加图像短代码?https://wordpress.org/plugins/stag-custom-sidebars/
允许您创建未分配到任何位置的无限边栏。将文本小部件添加到新创建的侧栏,只需添加:
<a itemprop="url" href="http://www.example.com/" title="My Company
Lawyers, Chicago"><img src="http://www.example.com" alt="My cool company" /></a>
这些也是一些很棒的短代码添加,它们都可以让您添加短代码。我发现这是构建复杂wordpress菜单最一致的方法,因为它通过在菜单中使用小部件/内容/图像/图标等添加了无数选项,并且没有禁用菜单的任何功能。请注意,如果您确实在描述字段中添加了一个快捷码,那么它显然不会在一个特定的菜单列表项中输出正常的标题字段。
http://wordpress.org/plugins/widget-or-sidebar-per-shortcode/
http://wordpress.org/support/view/plugin-reviews/custom-content-shortcode