问题描述
我无法理解这一点。在功能上似乎没有复选框或类似的功能,可以将新创建的自定义帖子类型归档页面添加到菜单中。
此外,链接必须处于活动状态,如果您在页面上。这可能是不可能的,但是有没有一些插件呢?对于我的爱,我找不到它:(
我只发现这个插件叫做 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。