2013-12-16 37 views
1

我有一个名为“Portfolio”的页面。我使用此页面显示名为“Works”的自定义帖子类型的存档。我通过使用称为“工作档案”的自定义模板显示投资组合页面来做到这一点。在自定义帖子类型的菜单中突出显示页面

我想在单个帖子上突出显示我的菜单中的投资组合页面。

你能帮我吗?

回答

-1

这可以帮助你

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); 

Source

+0

谢谢。你能告诉我在这段代码中改变哪些变量吗? – rasmussvanejensen

+0

orelse您可以在菜单中添加一个类,例如名为page1的menuitem添加一个名为my_custom_parent的类,然后使用它代替page-item-366 –

-1

嘿,我不知道这是否仍然相关,但我遇到了这个和它的工作很大。我使用的是根主题与后型 “项目”

// 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'); 
+0

我目前不在解决此问题,但感谢您的回复。我会为我的下一个项目尝试。 我仍然认为这个问题应该在Wordpress的核心解决,但在那之前我们将不得不采取黑客和斜杠。 – rasmussvanejensen

-1
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

+0

亚当,欢迎来到SO,谢谢你的回答。你介意编辑你的答案来解释这个解决方案是如何工作的,以及为什么它解决了原来的问题?只有代码的答案通常被忽视,因为它使人们很难理解为什么以及如何。谢谢! –

相关问题