Мне нужно было сделать нечто подобное для разработанного мной плагина.В некоторых случаях мне нужно сделать ссылку на страницу архива пользовательского типа сообщения.
// Filter wp_nav_menu_items to add link
// Filter wp_list_pages is optional 'back-ip'.
add_filter( 'wp_list_pages', 'my_menu_link' );
add_filter( 'wp_nav_menu_items', 'my_menu_link' );
function my_menu_link($items) {
global $wp_query;
$title = 'my title';
$url = 'http://www.google.com';
$class ='menu-item';
//perform query to add 'active' class when appropriate.
if(true) $class = 'current_page_item';
$menu_link = '<li class="'.$class.'"><a href="'.$url.'">'.$title.'</a></li>';
$items = $items . $menu_link;
return $items;
}
Это не лучший подход, и если есть лучшие, я хотел бы знать о них!
Фильтр wp_list_pages
предназначен для отображения страниц в списке - он используется некоторыми темами как запасной вариант, когда меню не выбрано.