问题描述

我无法理解这一点。在功能上似乎没有复选框或类似的功能,可以将新创建​​的自定义帖子类型归档页面添加到菜单中。

此外,链接必须处于活动状态,如果您在页面上。这可能是不可能的,但是有没有一些插件呢?对于我的爱,我找不到它:(

我只发现这个插件叫做 Custom Post Type Archives in Nav Menus,它并没有真正做任何事情,而是添加了自定义链接到菜单中。使用完整的 site-url 。它不会活跃或不是非常动态。

我以为,可能最简单的方法是覆盖 wp_nav_menu()并手动添加我的链接,然后使用 $_GET 信息来控制 「当前活动链接」 。

最佳解决方案

这是我认为应该工作的一种方法 (虽然没有测试) 。

//Hook on to the filter for the (custom) main menu
// 'wp_list_pages' filter is a fallback, when a custom menu isn't being used
add_filter( 'wp_list_pages', 'new_nav_menu_items' );
add_filter( 'wp_nav_menu_items', 'new_nav_menu_items' );
//Can also hook into a specific menu...
//add_filter( 'wp_nav_menu_{$menu->slug}_items', 'new_nav_menu_items' );

function new_nav_menu_items($items) {
    global $wp_query;
    $class ='';

    //Checks if we are viewing CPT 'myposttype', if so give it the 'active' class.
    if(isset($wp_query->query_vars['post_type'])&& $wp_query->query_vars['post_type']=='myposttype')
        $class = 'current_page_item';

    //This generates the url of the CPT archive page
    $url = add_query_arg('post_type','myposttype',site_url());

    $myitem = '<li class="'.$class.'"><a href="'.$url.'">My Custom Post Type</a></li>';

    $items = $items . $myitem;
    return $items;
}

对我而言似乎不是最简单的解决方案,但我不知道有什么其他的方法。如果有,我想看看!

最后,自定义项目链接的链接不是’pretty’ – 但是如果您新增了 CPT 的 s T(假定使用了自定义永久链接….)

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。