【问题标题】:How to integrate bootstrap navbar style into wordpress如何将引导导航栏样式集成到 wordpress 中
【发布时间】:2016-10-08 00:28:50
【问题描述】:

我无法将我的风格整合到 wordpress 中。我知道有一个选项可以在 wordpress 本身内执行此操作,它确实有效,但看起来没有连接到导航栏。我要做的就是为每个导航栏链接添加一个“sliding-middle-out”类。

<div class="collapse navbar-collapse" id="mainNavbar"><!-- NAVBAR COLLAPSE -->        

                    <div class="site-nav"><!-- SITE NAV -->

                        <?php

                            $args = array(

                                'theme_location' => 'primary'

                            );

                        ?>

                        <?php wp_nav_menu( $args ); ?>

                    </div><!-- ./SITE NAV -->

                </div><!-- NAVBAR COLLAPSE -->

我需要单独指定每个链接还是?,因为这在主题中不实用。

【问题讨论】:

    标签: css wordpress twitter-bootstrap


    【解决方案1】:

    您可以在菜单标记中添加大量信息,完整列表请参见此处:https://developer.wordpress.org/reference/functions/wp_nav_menu/

    但是,要将类添加到实际的 &lt;a&gt; 标记中,您需要创建一个导航步行器,这非常复杂。

    以下是有关 Wordpress 中 Walkers 的一些信息:https://codex.wordpress.org/Class_Reference/Walker

    还有一个非常简单的示例,应该添加您想要的类。您需要将其放在主题的 functions.php 文件中:

    <?php
    class Walker_Menu extends Walker {
    
        // Tell Walker where to inherit it's parent and id values
        var $db_fields = array(
            'parent' => 'menu_item_parent', 
            'id'     => 'db_id' 
        );
    
        /**
         * At the start of each element, output a <li> and <a> tag structure.
         * 
         * Note: Menu objects include url and title properties, so we will use those.
         */
        function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
            $output .= sprintf( "\n<li><a href='%s'%s>%s</a></li>\n",
                $item->url,
                ( $item->object_id === get_the_ID() ) ? ' class="sliding-middle-out current"' : ' class="sliding-middle-out"',
                $item->title
            );
        }
    
    }?>
    

    然后将 walker 类添加到您的菜单调用中:

    <?php
    $args = array(
        'theme_location' => 'primary',
        'walker' => new Walker_Menu
    );
    wp_nav_menu( $args );
    ?>
    

    【讨论】:

    • 当我添加你的代码时,我在类 walker _menu 行上的 Dreamweaver 中出现错误,当我运行它时,我根本没有页面 l:(
    • 我在functions.php的关闭后直接添加了下面的代码?>它工作但现在它给了我很多问题,我一定是做错了。如果我将 Dreamweaver 插入到主 标记中,则会报告错误。请帮忙
    • 我们会确保您没有使用嵌套的
    • 它需要放在函数文件的结束 php 标记之前。实际上,如果您正在执行 php 脚本,则不需要 php 文件的结束标记,这是出于安全原因。和以前一样,也删除开始的 php 标签。
    • 感谢 m8 ... :) 非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    • 2013-10-06
    • 2015-04-21
    • 2016-11-05
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    相关资源
    最近更新 更多