我有一个名为“Portfolio”的页面。我使用此页面显示名为“Works”的自定义帖子类型的存档。我通过使用称为“工作档案”的自定义模板显示投资组合页面来做到这一点。在自定义帖子类型的菜单中突出显示页面
我想在单个帖子上突出显示我的菜单中的投资组合页面。
你能帮我吗?
我有一个名为“Portfolio”的页面。我使用此页面显示名为“Works”的自定义帖子类型的存档。我通过使用称为“工作档案”的自定义模板显示投资组合页面来做到这一点。在自定义帖子类型的菜单中突出显示页面
我想在单个帖子上突出显示我的菜单中的投资组合页面。
你能帮我吗?
这可以帮助你
function change_page_menu_classes($menu){
global $post;
if (get_post_type($post) == 'portfolio')
{
$menu = str_replace('current_page_parent', '', $menu); // remove all current_page_parent classes
$menu = str_replace('page-item-366', 'page-item-366 current_page_parent', $menu); // add the current_page_parent class to the page you want
}
return $menu;
}
add_filter('wp_page_menu', 'change_page_menu_classes', 0);
嘿,我不知道这是否仍然相关,但我遇到了这个和它的工作很大。我使用的是根主题与后型 “项目”
// Remove active class from menu
function remove_active_class($class) {
return ($class == 'active') ? FALSE : TRUE;
}
// Add active class to menu of post type single template
function add_class_to_wp_nav_menu($classes) {
if(is_singular('projects')) {
$classes = array_filter($classes, 'remove_active_class');
if(in_array('menu-projects', $classes)) {
$classes[] = 'active';
}
} elseif(is_singular('resources')) {
$classes = array_filter($classes, 'remove_active_class');
if(in_array('menu-resources', $classes)) {
$classes[] = 'active';
}
}
return $classes;
}
add_filter('nav_menu_css_class', 'add_class_to_wp_nav_menu');
我目前不在解决此问题,但感谢您的回复。我会为我的下一个项目尝试。 我仍然认为这个问题应该在Wordpress的核心解决,但在那之前我们将不得不采取黑客和斜杠。 – rasmussvanejensen
add_filter('nav_menu_css_class', 'namespace_menu_classes', 10, 2);
function namespace_menu_classes($classes , $item){
if (get_post_type() == 'attorneys') {
$classes = str_replace('current_page_parent', '', $classes);
if ($item->url == '/attorneys') {
// Replace "attorneys" with your code
if(preg_match('/attorneys/', $item->url)) {
$classes = str_replace('menu-item', 'menu-item current_page_parent', $classes);
}
}
return $classes;
}
从这里改变了:https://wordpress.org/support/topic/custom-post-type-highlighting-current-menu-item
亚当,欢迎来到SO,谢谢你的回答。你介意编辑你的答案来解释这个解决方案是如何工作的,以及为什么它解决了原来的问题?只有代码的答案通常被忽视,因为它使人们很难理解为什么以及如何。谢谢! –
谢谢。你能告诉我在这段代码中改变哪些变量吗? – rasmussvanejensen
orelse您可以在菜单中添加一个类,例如名为page1的menuitem添加一个名为my_custom_parent的类,然后使用它代替page-item-366 –