WordPress.org

Ready to get started?Download WordPress

Forums

Custom Post Types in wp nav menu help (1 post)

  1. theshae
    Member
    Posted 3 years ago #

    I am using the below code to add custom post types to my wp nav menu and it works fine. But I only want the custom post types to show if they have posts. Right now it will show the custom post type I've created regardless if it has any posts. Any ideas?
    Here is the function:

    function custom_page_menu($menu, $args) {
    
     // get supplied args
     $list_args = $args;
    
     // Overide some menu settings
     $list_args['container'] = '';
     $list_args['echo'] = false;
     $list_args['title_li'] = '';
     $list_args['show_home'] = false;
     $list_args['exclude'] = 4; // excluding the homepage as I am manually adding it to the start below
    
     // get the current page object as we will need to refer to it when setting current items below
     global $wp_query;
     $current_page = $wp_query->get_queried_object();  
    
     // Loop through the custom post types and add them to the menu
     foreach(get_post_types(array(
     'public'   => true,
     '_builtin' => false,
     'hierarchical' => true
     )) as $pt) {
    
     $obj_pt = get_post_type_object($pt);
     $list_args['post_type'] = $pt;
     $menu .= '<li>'.'<a href="  ' . $obj_pt->rewrite['slug'] . ' ">' . $obj_pt->labels->name . '</a>';
    
     $menu .= '</li>';
     }
     return $menu;
    
    }
    add_filter( 'wp_page_menu', 'custom_page_menu' ,10,2 );

Topic Closed

This topic has been closed to new replies.

About this Topic