Title: Modify menu programmatically
Last modified: August 21, 2016

---

# Modify menu programmatically

 *  [roufamatic](https://wordpress.org/support/users/roufamatic/)
 * (@roufamatic)
 * [11 years, 8 months ago](https://wordpress.org/support/topic/modify-menu-programmatically/)
 * I’m building a site with Paid Memberships Pro. It’s structured primarily with
   pages that are assigned to different membership levels. My goal is, when a user
   is logged in, to show a menu with submenu items representing the pages that member
   is allowed to see.
 * Talking with the PMP developer, he suggested I create a menu per membership level
   and swap the entire menu out. That’s not ideal because there will be many levels
   and most will share the same links, so any change would involve changes to every
   level.
 * Is there a way to append menu items to a menu programmatically instead? I am 
   comfortable writing my own plugin to do so.

Viewing 2 replies - 1 through 2 (of 2 total)

 *  [rdellconsulting](https://wordpress.org/support/users/rdellconsulting/)
 * (@rdellconsulting)
 * [11 years, 8 months ago](https://wordpress.org/support/topic/modify-menu-programmatically/#post-5118693)
 * I’ve used this [plugin](http://wordpress.org/plugins/nav-menu-roles/), may be
   worth you investigating
 *  Theme Author [presscustomizr](https://wordpress.org/support/users/nikeo/)
 * (@nikeo)
 * [11 years, 8 months ago](https://wordpress.org/support/topic/modify-menu-programmatically/#post-5118881)
 * Hi [@roufamatic](https://wordpress.org/support/users/roufamatic/),
    You can add
   items programatically to a menu with this filter in WP : Menu items can be added
   manually by applying filters:
 *     ```
       wp_nav_menu_{$menu->slug}_items
       ```
   
 * **Example where ‘main’ is the main menu slug in Customizr, is_member () has to
   replaced by the Memberships Pro function to test if user is a member :**
 *     ```
       add_filter ('wp_nav_menu_main_items' , 'add_my_custom_item' );
       function add_my_custom_item($items) {
        if ( ! is_member() )
          return $items;
        return $items . '<li class="admin-menu-item"><a href="#custom URL" title="A link title">A menu title</a>';
       }
       ```
   
 * Hope this helps!

Viewing 2 replies - 1 through 2 (of 2 total)

The topic ‘Modify menu programmatically’ is closed to new replies.

 * ![](https://i0.wp.com/themes.svn.wordpress.org/customizr/4.4.24/screenshot.png)
 * Customizr
 * [Support Threads](https://wordpress.org/support/theme/customizr/)
 * [Active Topics](https://wordpress.org/support/theme/customizr/active/)
 * [Unresolved Topics](https://wordpress.org/support/theme/customizr/unresolved/)
 * [Reviews](https://wordpress.org/support/theme/customizr/reviews/)

## Tags

 * [dynamic menu](https://wordpress.org/support/topic-tag/dynamic-menu/)
 * [menu](https://wordpress.org/support/topic-tag/menu/)
 * [Menu customization](https://wordpress.org/support/topic-tag/menu-customization/)

 * 2 replies
 * 3 participants
 * Last reply from: [presscustomizr](https://wordpress.org/support/users/nikeo/)
 * Last activity: [11 years, 8 months ago](https://wordpress.org/support/topic/modify-menu-programmatically/#post-5118881)
 * Status: not resolved