当在/(或“home”)时,我的菜单没有获得当前菜单项类

时间:2012-01-20 作者:Massagran

我是一个调整主题的wordpress noob,所以我想了解它是如何工作的。我已经在SE上读了大约10篇相关帖子,但还没有读到。我的问题如下:

标题。php似乎生成菜单,

<?php wp_nav_menu(array(\'theme_location\' => \'nav-menu\',\'container\'  => \'div\', \'container_class\' => \'menu\' )); ?> 
在wp admin中,我创建了一个菜单

“博客|关于|联系人”

它指向根和两页:“/”|“关于”|“联系”(非常标准)。现在,我想根据“活动”页面设置菜单样式。对于“关于”和“联系”来说,这似乎很容易。为每个菜单项生成的类包括current-menu-item. 然而,在主页上,我的“博客”菜单“li”只会显示课程

menu-item menu-item-type-custom menu-item-object-custom menu-item-47
因此不能相应地设置样式。我读过一些关于过滤、使用函数等的东西。。。但我不太明白。如果我在函数中定义函数。php,之后我将在哪里使用它。

非常感谢您的任何见解和帮助,

4 个回复
最合适的回答,由SO网友:sanchothefat 整理而成

要使其正常工作,您需要转到菜单管理,并在页面部分单击显示“查看全部”的选项卡。列表顶部是主页的一个特殊选项,无论是普通博客视图还是特定页面。把它加到菜单上就好了。

enter image description here

SO网友:Sufiyan Ghori

使用此代码可以轻松生成菜单,

<ul>
                <li <?php if(is_home()) { ?> class="active" <?php } ?>><a href="<?php echo get_option(\'home\'); ?>/">Home</a></li>
                <?php wp_list_pages(\'depth=1&sort_column=menu_order&title_li=\' ); ?>
            </ul>
用于创建已发布页面列表的函数wp\\u list\\u pages(),会自动将类current\\u page\\u项添加到与正在查看的页面对应的列表项中。

您只需添加。当前的\\u page\\u项目类与您的样式匹配。css文件:

/* Style the list element */
li.current_page_item{
background:#eee;
color:#777;
}

/* Style the link element */
li.current_page_item a{
text-decoration:underline;
}

SO网友:markratledge

它不是很漂亮(可以通过使用php动态拾取菜单项ID来改进),但您可以这样做:

     <?php if (is_front_page()) echo
       \'<style type="text/css" title="text/css">.menu-item-14 a
         {your current_page_item style here}</style>\'
    ;?>
更改。menu\\u item-14设置为当前主页的类,并将当前的\\u menu\\u项也更改为CSS。

将该声明放在

<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( \'stylesheet_url\' ); ?>" />
在标题中。php,以便在主样式表之后加载CSS。

SO网友:Rob Vermeer

奇怪的是,wordpress没有将该页面选为当前页面。但一个简单的解决方案是这样的(仅限CSS)。

以你的风格。css

.home .menu-item-47 {
   /* current-menu-item styles */
}

结束

相关推荐

不能在帖子标题中使用‘css’

Issue?每当我在帖子标题中使用术语“CSS”时,标题的其余部分(在术语“CSS”之后)都会插入到单个帖子页面的顶部。What steps will reproduce the problem?1。创建新帖子2。在帖子标题的某处键入“CSS”3。预览/发布帖子。What is the expected output? What do you see instead?我希望看到页面标题正常显示,确实如此。然而,在页面顶部,在开始正文标记的上方,插入了术语“CSS”之后的标题中的所有内容。What vers