如何将徽标放在导航栏中其他项目的中心

时间:2014-06-08 作者:DamianFox

我正在wordpress中开发一个网站,我必须创建一个导航栏,其中网站的徽标必须放在以下项目之间:

item1 item2 LOGO item3 item4
我想用Walker 但我不知道从哪里开始。你有其他/更好的建议吗?谢谢

1 个回复
最合适的回答,由SO网友:Bryan Willis 整理而成

你有很多选择。我的意思是,它可以通过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

结束

相关推荐

WordPress-Site的本地安装上仍未显示wp-config.php文件

我已经使用XAMPP和this Sunny Johal的分步指导(该页的第五篇帖子)。我第一次使用逐步运行所有3个SQL代码(更新wp\\u选项/wp\\u帖子),然后删除wp\\u配置文件(指南的作者建议这是配置文件的最简单方法),页面正确显示了标题,但所有文本和图像的显示方式看起来都没有sylesheet。我想我把事情搞糟了,于是删除了SQL数据库,重新开始。据我所知,我正在以同样的方式遵循同样的步骤,但我得到了两个明确的问题:Wordpress正在显示该网站的2013年旧版本。这与2014年的版本几