当前菜单项未添加到显示自定义帖子类型的页面上(使用档案模板呈现)

时间:2012-06-11 作者:Francesco

我设置了一个名为“expertizeom”的自定义帖子类型,我设置了一个名为“expertize”的页面,并将其添加到我的自定义菜单(网站主导航)wordpress isn\'t adding the current-menu-item class.

你能帮忙吗?谢谢

弗朗西斯科

4 个回复
SO网友:Pontus Abrahamsson

如果您使用wp nav menu 您可以使用它添加当前菜单项类,并将其放入主题函数中。php文件和remember to change "mypageslug" to your wanted current page:

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

    if ( $menu_item->post_name == \'mypageslug\' && is_page_template(\'archive-expertizeom.php\') ) {
        $classes[] = \'current-menu-item\';
    }

    return $classes;
}
add_filter( \'nav_menu_css_class\', \'additional_active_item_classes\', 10, 2 );
如果您位于具有template archive-expertizeom.php 并且菜单有一个post\\u名称,该名称与post\\u名称“mypageslug”匹配,即所需页面的slug。

SO网友:Mosne

在我的例子中,我使用magic-fields-2插件创建自定义帖子类型-我只需激活选项“Hierarchy-帖子类型是否为Hierarchy。允许指定父级”

SO网友:Carsten

我也遇到过同样的问题,这对我很有效:

query_posts(\'cat=3\');
while (have_posts()) : the_post();
    get_template_part( \'content\', get_post_format() );
endwhile;
wp_reset_query();
wp_reset_query(); 做所有的魔术:)

SO网友:steinybot

@由于我的页面正在使用page,所以pontus abrahamsson的回答对我来说并不太合适。php,所以我需要其他东西来确定它是否与我正在查看的页面相同。

我不知道这有多强大,但它对我有效,并且适用于所有模板(我尝试过):

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

    if ( home_url( $wp->request ) == rtrim($menu_item->url,"/") ) {
        $classes[] = \'current-menu-item\';
    }

    return $classes;
}
add_filter( \'nav_menu_css_class\', \'additional_active_item_classes\', 10, 2 );

结束

相关推荐

当前菜单项未添加到显示自定义帖子类型的页面上(使用档案模板呈现) - 小码农CODE - 行之有效找到问题解决它

当前菜单项未添加到显示自定义帖子类型的页面上(使用档案模板呈现)

时间:2012-06-11 作者:Francesco

我设置了一个名为“expertizeom”的自定义帖子类型,我设置了一个名为“expertize”的页面,并将其添加到我的自定义菜单(网站主导航)wordpress isn\'t adding the current-menu-item class.

你能帮忙吗?谢谢

弗朗西斯科

4 个回复
SO网友:Pontus Abrahamsson

如果您使用wp nav menu 您可以使用它添加当前菜单项类,并将其放入主题函数中。php文件和remember to change "mypageslug" to your wanted current page:

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

    if ( $menu_item->post_name == \'mypageslug\' && is_page_template(\'archive-expertizeom.php\') ) {
        $classes[] = \'current-menu-item\';
    }

    return $classes;
}
add_filter( \'nav_menu_css_class\', \'additional_active_item_classes\', 10, 2 );
如果您位于具有template archive-expertizeom.php 并且菜单有一个post\\u名称,该名称与post\\u名称“mypageslug”匹配,即所需页面的slug。

SO网友:Mosne

在我的例子中,我使用magic-fields-2插件创建自定义帖子类型-我只需激活选项“Hierarchy-帖子类型是否为Hierarchy。允许指定父级”

SO网友:Carsten

我也遇到过同样的问题,这对我很有效:

query_posts(\'cat=3\');
while (have_posts()) : the_post();
    get_template_part( \'content\', get_post_format() );
endwhile;
wp_reset_query();
wp_reset_query(); 做所有的魔术:)

SO网友:steinybot

@由于我的页面正在使用page,所以pontus abrahamsson的回答对我来说并不太合适。php,所以我需要其他东西来确定它是否与我正在查看的页面相同。

我不知道这有多强大,但它对我有效,并且适用于所有模板(我尝试过):

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

    if ( home_url( $wp->request ) == rtrim($menu_item->url,"/") ) {
        $classes[] = \'current-menu-item\';
    }

    return $classes;
}
add_filter( \'nav_menu_css_class\', \'additional_active_item_classes\', 10, 2 );

相关推荐