問題描述

我無法理解這一點。在功能上似乎沒有複選框或類似的功能,可以將新創建​​的自定義帖子類型歸檔頁面添加到菜單中。

此外,鏈接必須處於活動狀態,如果您在頁面上。這可能是不可能的,但是有沒有一些插件呢?對於我的愛,我找不到它:(

我只發現這個插件叫做 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。