Page Menu Editor

Latest Version: 3.0
Works on: From version 2.5+
Last Update: 5th June 2017

Update Log

1.1 – I realised you couldn’t remove a label or attribute value once it had been set. This has now been rectified.
1.2 – Have now combined the two boxes into one section. It now appears at the top of the Advanced Options.
1.3 – Fixed an issue with version 1.2
1.4 – Minor fixes plus stripping out the added backslashes
1.5 – There is no 1.5 really, I just messed up the SVN update in the WP repository for version 1.4!
1.6 – Added in a migration function to allow you to migrate your settings over to the new All in one SEO pack plugin (if you use it) as it now uses the same code.
1.7 – Set the plugin priority to 1 as certain other menu plugins are getting their changes in first and preventing the plugin working.
1.8 – Some error fixes
1.9 – Couple of minor fixes to remove error messages showing for some.
1.9.1 – Fixed the insufficient priviledges error showing for some. Added in a couple of tags for the title attribute to replicate either the page title or menu label.
2.0 – Finally have managed to get this working with the link_before and link_after parameters, which means anyone with additional tags (such as <span> tags) within the link to make it easier for using images shouldn’t find their tags being stripped out now. Also tidied up the admin on the add/edit Page.
2.0.1 – Had to revert some of the code to fix an issue that 2.0 caused with menus and child menus.
2.0.2 – Fixed the code to work with the link_before and link_after tags.
2.0.3 – Minor bug fix where the link to the settings page was wrong (only showed up for All in One SEO pack users).
2.0.4 – Minor bug fix to remove some HTML comments that caused layout issues in MSIE.
2.0.5 – Upgraded to work with WP 3.3 which not longer contains title attributes by default.
2.1 – Rewritten the code to make it more efficient and flexible, added in an All in One SEO pack import option.
2.1.1 – Bug fixes on migration and errors showing.
2.1.2 – Bug fixes (thanks to Mark Anderson for the pointers)
3.0 – Code overhaul/modernisation, PHP improvements, documentation

The Plugin

The Page Menu Editor allows you to customise the menu label and title attribute of any Page link that’s being displayed with the Template Tag wp_list_pages(). Originally, by default WordPress gave the title attribute of any page link the same text as the anchor text and I felt there was no point repeating the same text, it’s a complete waste of time in my opinion. You should only use a title attribute on a link if you need to expand on the already given anchor text e.g. If the anchor text is ‘Home’ then you could have the title attribute as ‘Return to our Front Page’. Since WordPress 3.3, this has been removed and there is no title attribute by default.

This plugin allows you to have a different menu label to the page header (by default both are usually the same) and add a title attribute for any page you want to, and if you don’t then no title attribute will be set. It’s mainly been written for sites using WordPress as a CMS however can still be useful to anyone who has one or more pages on their site that are displayed using the wp_list_pages() tag.


  1. Download the Plugin and unzip it.
  2. Upload it to your plugins directory and activate it via the Plugins section.
  3. Go into Manage – Pages and edit an existing page OR go to Write – Page. Below the content area you’ll see two new boxes – Page Menu Label and Page Link Title Attribute See Figure 1.
  4. Fill this out with the text you require and Save or Publish the page.
Figure 1: Page Link Title Attribute Form Box
Page Menu Editor Screenshot
Figure 2: Title Attribute Showing on Link Hover
Title Attribute Screenshot

It’s a pretty simple plugin and at present there are no options as I can’t really think of any to offer! Any requests please leave them in the comments below and if I can I’ll add them in. Any problems also leave them below or feel free to make any suggestions over on the repository at GitHub.

223 Responses

  1. Cian says:

    Sounds good! I’ll check out the link now

    Thanks for all your help

  2. sam says:

    I submitted a new enhancement ticket & patch adding 2 new filter hooks, “page_anchor_contents” and “page_anchor_attributes”, that will make this kind of filtering a lot easier:

    You can vote for the ticket if you’d like to see it added (I’m hoping it gets into 2.9).

    Thanks for the plugin, Sarah!

  3. Barb Peterson says:

    Hi Sara,

    I am customizing the my-dkret3 theme and it uses the wp-page-menu template tag to list the items in the menu. I see that your plugin uses the list-pages. So I assume your plugin won’t work for me unless I change the author’s template tags?

    Here’s his snippet of code that formats the menu:

    Thanks for the info!

  4. Michael says:

    Just what I was looking for! The plugin does not appear to work with ver 2.85 or possibly the Thesis theme. Bummer. Any insights?

  5. Sarah says:

    Barb – no it’s designed to work with wp_list_pages which the template tag that you’re using is virtually identical to except it outputs a couple of extra tags. When I get a chance to work on the plugin I’ll add in support for the new tag too but for now a quick change to the old tag shouldn’t be too major on your site.

    Michael – the plugin works fine with the latest version of WordPress so it must be down to either a conflict with another plugin or whether your theme uses the wp_list_pages() function. Without seeing your site I can’t suggest anything more specific.

  6. Robert Neuschul says:


    Wishlist item:

    I’ve been using the plugin for a while on “ordinary” sites but I do have one issue with it when using WP as a CMS.

    Put simply one doesn’t want editors and authors and others with access to page creation/editing functions to have access to any capability for changing page menu entries. The consequences in a large CMS with carefully structured menus and content could be a complete nightmare.

    I believe PME really _does_ need a settings entry which allows administrators to determine who can or cannot modify such entries, either using a role-based approach or on a named user basis, or better yet, both.

    Thanks for a good plugin Sarah, it really is much appreciated.



  7. Sarah says:

    Hi Robert, it’s a good point, not something that occurred to me (mainly because it’s only me who tends to maintain the sites that use it so access isn’t an issue).

    The capabilities method will be the simplest to implement. I’ll have a look at this when I can around Christmas.

    Cheers for the feedback 🙂

  8. Robert Neuschul says:


    Thanks, much appreciated: but be warned, having spent a lot of the last week digging quite deeply into the source code implementation of capabilities/roles I’m not currently impressed: it’s a nightmare of spaghetti code. Not well thought out for any context other than pure blogging, and poor at best even in blog mode.
    Several of the capability/role manager plugins fall foul of the problems. For example adding edit_user capability to any role lower than admin level 8 allows such users to promote themselves [or anyone else] to admin, which is insane. Capabilities should degrade gracefully as they’re delegated downwards.

    All the best, have a good break.


  9. Sam Stephenson says:

    Hi sarah, love the plugin – it’s exactly what I was looking for.

    I was wondering – is it possible to disable the plugin for different page lists. Basically I’ve got a page list in my content area using Heading tags. And I want another list in the sidebar – listing the same pages but without the formatting…

    Any Help would be great 🙂

    • Sarah says:

      Hi Sam, the plugin only filters wp_list_pages(), so if you use wp_page_menu() for the list you don’t want formatted then I believe that the formatting shouldn’t kick in, however, I was intending to add support in for the wp_page_menu() at some point, so I’ll see if there’s a way to allow you to turn off the changes by using a parameter.

      • Sarah says:

        My apologies Sam, wp_page_menu() uses wp_list_pages() to create its list. I’ve looked into adding an additional parameter and not found a method yet. Another option for you would be to look at the get_pages() function and use that to do your non-formatted page list.

  10. Sam Stephenson says:

    Thanks for the help, I think I’ve figured a basic way out using css to re-format all the text and hide all the unwanted stuff. Thanks again though

  11. Matt says:


    Do you know if it’s compatible with the Headspace2 seo plugin? I’m getting a fatal error and am not sure if it’s due to a headspace conflict or something else in my setup.

    Looks like a great plugin! Thanks

  12. Mobi says:

    Very good plugin i enjoy this !

  13. Ktomasso says:

    Just installed the plugin, simple but great. Is there a way using this, or any other plugin you may know to change the order of the links in the menu? I’m pretty new to WordPress, but it doesn’t seem like there is a way to do this

  14. Sarah says:

    To change the order of links in a page menu use the menu order attribute and then add the parameter sort_column=menu_order to your wp_list_pages() tag.

    I recommend the plugin ‘Admin Management Extended’ for easy management of the page order too.

  15. haim says:


    is there a way to use the menu attribute with span?
    so it show under the menu item? lie in this blog:


    • Sarah says:

      At present there isn’t due to the technique required to replace the anchor text with the label text. I have triedbut it’s beyond my knowledge.

  16. haim says:

    Hi Sarah,

    thanks for comment.
    i managed to solve my problem by hacking other plugin (page list plus).
    probably could do that with your as well…

    you can see the result here:

  1. Tue, 22 September, 2009

    […] Page Menu Editor allows for a different menu label and anchor text of any page link using the Template Tag. Very […]

  2. Tue, 22 September, 2009

    […] Page Menu Editor adds a new Meta Box to the Edit Page screen letting you choose a new Page Menu Label. What this means is this: you can have a different (usually simpler) title for your menu link than the actual title on the page. This is the number 1 reason why I usually hand code my menus. Again, brilliant. […]

  3. Fri, 6 November, 2009

    […] Page Menu Editor […]

  4. Sat, 5 December, 2009

    […] Page Menu Editor — Added functionality to define a unique menu label from the page title. PLP has this functionality. […]

  5. Sun, 3 January, 2010

    […] Page Menu Editor adds a new Meta Box to the Edit Page screen letting you choose a new Page Menu Label. What this means is this: you can have a different (usually simpler) title for your menu link than the actual title on the page. This is the number 1 reason why I usually hand code my menus. Again, brilliant. […]

  6. Tue, 2 February, 2010

    […] following plugins are helping out behind the scenes — Google XML Sitemaps, Infinite Scroll, Page Menu Editor, postMash (Filter), Top Level Categories, Widget Context and WP Super Cache. AKPC_IDS += […]

  7. Wed, 10 February, 2010

    […] de Page Menu Editor plugin kun je de link-tekst en title aanpassen. Erg handig als je pagina titel redelijk lang is en […]

  8. Fri, 7 May, 2010

    […] Page Menu Editor by SarahGAllows you to customize the title attribute and menu label of each page link in wp_list_pages. […]

  9. Wed, 2 June, 2010

Leave a Reply

Your email address will not be published. Required fields are marked *