归档/POST中突出显示的自定义POST类型菜单

时间:2012-07-30 作者:dev-jim

我通过自定义链接(链接到存档页)为我的自定义帖子类型创建了一个自定义导航菜单。假设我有一个名为“product”的自定义帖子类型,当我单击菜单时,它将转到“product”的存档页面,并且“product”将突出显示。这很容易,因为在“产品”归档页面中,WP会自动将“当前菜单项”类添加到菜单中。

但有一个问题,在存档页面中,“当前菜单项”似乎只添加到存档的第一页。当我转到第2页时,“当前菜单项”没有添加到类中,菜单也没有突出显示。

除此之外,我还希望在查看“产品”类型下的帖子时突出显示菜单。

因此,我尝试将此代码添加到函数中:

function add_active_classes($classes = array(), $menu_item = false){
global $wp_query;

if(in_array(\'current-menu-item\', $menu_item->classes)){
    $classes[] = \'current-menu-item\';
}

if ( $menu_item->post_type == \'product\' && is_post_type_archive(\'product\') ) {
    $classes[] = \'current-menu-item\';
}

if ( $menu_item->post_type== \'product\' && is_singular(\'product\') ) {
    $classes[] = \'current-menu-item\';
}


return $classes;
}
add_filter( \'nav_menu_css_class\', \'add_active_classes\', 10, 2 );
结果没有什么变化。我做错了什么?

1 个回复
SO网友:chifliiiii

你几乎是对的。请尝试以下操作:

function add_active_classes($classes = array(), $menu_item = false){
global $wp_query;

if(in_array(\'current-menu-item\', $menu_item->classes)){
    $classes[] = \'current-menu-item\';
}

if ( $menu_item->title == \'product\' && is_post_type_archive(\'product\') ) {
    $classes[] = \'current-menu-item\';
}

if ( $menu_item->title== \'product\' && is_singular(\'product\') ) {
    $classes[] = \'current-menu-item\';
}


return $classes;
}
add_filter( \'nav_menu_css_class\', \'add_active_classes\', 10, 2 );
我假设您的自定义帖子类型称为“product”,并且您创建了一个包含该slug的页面,并将其添加到菜单中

结束

相关推荐

可以直接从模板文件中将原始的css字符串入队吗?

我想知道是否可以将原始CSS作为字符串直接从模板文件中排队?我正在为页面编写自定义模板,需要为其添加一些样式规则。我想做的是在PHP中将样式写成字符串变量,然后使用enqueue\\u style函数加载这些样式,而不是将它们添加到“style”中。css”或其他一些外部样式表。我假设,只要我在调用“get\\u header”函数之前将样式排队,并且如果我连接到“wp\\u head”或“wp\\u enqueue\\u styles”操作,这将起作用,但它似乎不起作用,而且我不确定“wp\\u enq