Wordpress 动态菜单突出显示页面是否属于特定类别

发布于 2024-12-05 23:57:27 字数 174 浏览 0 评论 0原文

我正在寻找一种方法,可以在用户查看分配给给定分类或类别的页面时动态突出显示菜单项。例如,顶部的导航栏包含“产品”和“策略”项目。创建的任何具有类别或分类“产品”的页面或帖子都会导致当您位于该产品的页面上时突出显示“产品”菜单项。我在想,如果我能找到一种方法,根据上述标准将一个类应用于该项目,那就可以了。有什么想法吗?我被这个难住了。

I'm looking for a way to dynamically highlight a menu item anytime a user is viewing a page that is assigned to a given taxonomy or category. For example a nav bar at the top with items "Products" and "Strategy". Any page or post that is created and has the category or taxonomy "product" would cause the Products menu item to be highlighted when you are on the page for that product. I'm thinking if I could figure out a way to just apply a class to that item based on the criteria above, that would do it. Any ideas? I'm stumped on this one.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寄风 2024-12-12 23:57:27

我会推荐前端方法。我的想法是这样的:

1)您有 2 个或更多类别:产品和策略 ...

2)产品中的每个帖子都会有一个正文类字符串,其中包含一个可能称为products-taxonomy 或类似的东西。

3) 使用 jQuery,您可以检查产品分类策略分类并突出显示特定的菜单项。如果您在创建菜单时将特定类添加到产品类别中,则可以使用 jQuery 选择器轻松完成此操作。

它会是这样的:
为产品菜单项添加类:'productsMenu'
为策略菜单项添加类:'strategyMenu'
确保你回显 body_class

var $body = $(body); // better select just once the body
if($body.hasClass('products-taxonomy')) {
    // highlighetMenuItem should be your highlighting class
    $(".productsMenu").addClass("highlighetMenuItem");  
} else if($body.hasClass('strategy-taxonomy')) {
    $(".strategyMenu").addClass("highlighetMenuItem");
}

是的......如果你想要的话,你需要在前端使用 jQuery这个工作。或者您可以在几乎同样多的代码行中使用纯 JavaScript。 :)

I would recommend a front end approach. Here's what I'm thinking:

1) You have 2 or more categories: Products and Strategy ...

2) Each post in Products will have a body class string that contains a class which is probably called products-taxonomy or something like that.

3) With jQuery you can check for products-taxonomy or strategy-taxonomy and highlight the specific menu-item. This can be done easily with jQuery selectors provided that you add a specific class to your products category when you create your menu.

It would be something like this:
add class for products menu item : 'productsMenu'
add class for strategy menu item : 'strategyMenu'
make sure you echo the body_class

var $body = $(body); // better select just once the body
if($body.hasClass('products-taxonomy')) {
    // highlighetMenuItem should be your highlighting class
    $(".productsMenu").addClass("highlighetMenuItem");  
} else if($body.hasClass('strategy-taxonomy')) {
    $(".strategyMenu").addClass("highlighetMenuItem");
}

And yeah... you need jQuery on the front end if you want this to work. Or you could use pure javaScript in almost as many lines of code. :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文