WordPress Plugin: Mass Page Maker

As of February 24, 2013, there is a new version of this plugin that I will be updating. Called Mass Page Maker Pro, it has new features like a customizable CSV format and improved web UI, but costs money.

This older, free version will continue to be available. If you’ve gotten any value from the plugin before, please consider purchasing the full version to get all future updates.

UPDATE — March 19, 2013
After a conversation with the WordPress plugin repository staff, it looks like the updated free version of this plugin will not be listed in the directory, making this the only place to download it. I will continue to provide the last free full featured version for download, but cannot support it.

Ever had the need to create multiple pages or posts and dreaded the idea of doing it manually?

Mass Page Maker is an admin panel that gives you the ability to create as many pages or posts as you like in a matter of seconds. It can create posts and pages that are customized with every aspect of a regular WordPress page.

It is a more human-readable way for users to insert new posts, compared to the native WordPress XML importer.

If you need to import data to WordPress and it seems like this plugin can almost do the job, send me an email with what how you’d like the plugin to be different. I can work with you to develop a customized version, but I must change for the service: $25/hour with a minimum charge of $50.

Tested most recently with WordPress 3.3.1. Please send feedback via the contact page or post a comment.

Table of Contents


Mass Page Maker is compatible with WordPress’ locale system. If you are interested in translating for your locale, please comment below or email w [at] wesg [dot] ca. If you’re particularly ambitious, translate the .PO file in the plugin download and send back to that address.
Current Translations

Thanks for helping to translate!

Download v2.7 of Mass Page Maker


  • Fill out the fields in the admin panel according to what your needs are. If you include [+], the plugin automatically inserts the incremented data.
  • As of version 2.7, the web interface inserts posts with the same data. If you want unique pages, please use a CSV file.
  • Entering a post date in the future will result in the post being published at that time.
  • Use a CSV (comma separated value) file to insert a large number of customized pages.
  • The plugin can handle nearly all the regular WordPress options.

If the name of your post is New Page [+] and you want 5 pages written, the resulting pages will be

New Page 1
New Page 2
New Page 3
New Page 4
New Page 5

Custom fields example:
To add two new fields to your new posts, use semicolons.

phone; address --> 123 456 7890; 123 fake st

This results in each new post having both of those fields associated with it.

Using CSV files

The plugin supports importing CSV files to add multiple posts very quickly. While being more powerful when entering pages, it is also more complicated. You must follow a specific format when building files.

Please view the sample file before adding your own. Be advised that while the sample file will work, it contains mostly irrelevant data to a blog.

The CSV file must have exactly 15 columns. Any columns that aren’t used must be included, but kept blank (ie. “”).

When using Excel to create CSV files, be sure to check the use of quotation marks before uploading the file to the plugin. Excel has a tendency to get confused when fields of text use quotation marks inside.

Format to follow
Each line in a CSV file follows a pattern separated by commas that turns the file into a makeshift database. The MPM CSV follows this pattern:

  • Page title
    Regular post title value
  • Page publishing date (in the timezone of your WordPress installation)
    Must follow the format YYYY-MM-DD HH:MM:SS. The seconds are optional. The plugin will verify the format before inserting the file.
  • Post content (commas and quotation marks must be escaped using the \\ character)
    Escape the quotations and apostrophes with the backslash character.
  • Post excerpt (same restrictions as content)
  • Post category
    The category title.
  • Post parent
    The page ID of the parent post (only valid on pages). Default should be 0.
  • Page template
    The PHP file in your template directory you want to use (ie. contact.php). “Default” is the default template.
  • Post status
    One of the following list: publish, draft, private.
  • Post type
    Either post or page.
  • Comment status
    Open or closed.
  • Ping status
    Open or closed.
  • Custom key
    Post meta field (doesn’t have to previously exist). Separate different fields with semicolons — be sure to surround the field in quotations (ie. “field 1; field 2”) Can be empty.
  • Custom key value
    Corresponding post meta value. Separate different values with semicolons (ie. “value 1; value 2”) Can be empty.
  • Tags
    Enter tags separated by commas Can be empty.
  • Post password
    The post password Can be empty.

Escaping characters
To clarify some of the questions coming in, here is an overview of how to escape characters when using CSV. Inside the sample file, you’ll note that fields are either surrounded by quotation marks or not. When fields are surrounded by quotation marks, any extra quotation marks inside the text must be escaped (ex.1) and when there are no quotation marks, all commas need to be escaped (ex.2). The latest version of the plugin appears to import Excel .CSV files correctly, so that is a good way to format everything correctly. Be sure that lines are deleted, and not only blank (otherwise they include useless lines).

, “Sample field with \” inside the text”, , Sample field\, with comma escaped,
, “Sample field with improper ” inside the text”, , Sample field, with comma improperly escaped,

Caution: This plugin is extremely powerful. A slip of the mouse can cause your blog to insert many more pages than you intended, which can take a lot of time to delete. Read the options carefully before inserting pages.


  1. Copy the folder mass-page-maker to your WordPress plugin folder (usually wp-content/plugins).
  2. Open the WordPress Admin Panel and activate the plugin.
  3. Navigate to your Option panel, where you will see the plugin’s interface.


What is the purpose of this plugin?
Mass Page Maker automates the task of making pages or posts that are similar to each other. This can be a very time consuming process that can now be done in a matter of seconds.

What options are available?
In the interface panel, you have the ability to customize the page insertion.
You can change:

  • Number of pages
  • Starting number of page
  • Post/Page title
  • Post/Page content
  • Post/Page status (published or draft)
  • Post/Page type
  • Post/Page category
  • Page parents
  • Page excerpts
  • Specific page dates
  • Time interval between pages
  • Page template
  • Page visibility/password

How many pages can I enter at once?
This will depend on the hardware of your server and your patience. Using a modest development server, I have been able to insert 2500+ pages in around 1 minute.


Click for a larger view.


v2.7 — March 10, 2012
* Major overhaul for WP 3.3.1
* Uses WordPress native functions
* Provides immediate progress feedback during CSV import

v2.6.7 — July 19, 2010
* Rewritten for WP 3.0
* Improved the reliability of the CSV and web interface
* Fixed tags in CSVs

v2.6.6 — December 17, 2009
* Added support for page orders
* Improved handling of escaped characters in CSV and web interface
* Various other bug fixes

v2.6.4 — August 20, 2009
* Repaired category support

v2.6.3 — August 10, 2009
* Cleaned page insertion problem
* Repaired template issues

v2.6.2 — August 9, 2009
* Fixed quotation handling

v2.6.1 — August 9, 2009
* Improved quotation handling
* Added page visibility options

v2.6 — July 23, 2009
* Fixed WP 2.8.x compatibility

v2.5.9 — July 22, 2009
* Added troubleshooting information

v2.5.8 — June 28, 2009
* Improved support for WP 2.8
* Added tag support
* Better compatibility with CSV files

v2.5.7 — May 17, 2009
* Added better compatibility and feedback with CSV files

v2.5.6 — April 30, 2009
* Added placeholder support
* Added better troubleshooting feedback for CSV files

v.2.5.5 — April 6, 2009
* fixed increment tag in page content and excerpt

v2.5.4 — March 21, 2009
* Made custom field work in each way
* Add German translation

v2.5.3 — March 18, 2009
* Added custom field support

v2.5.2 — March 15, 2009
* Finally fixed future posting cron errors

v2.5.1 — March 14, 2009
* Corrected some type wrong in v2.5

v2.5 — March 14, 2009
* Corrected cron behaviour with future posts
* Added page template option
* Add CSV file imports

v2.1 — February 8, 2009
* fixed what should have worked in 2.0

v2.0 — February 6, 2009
* Overhauled date and time system
* Added page excerpt data
* Added ability to insert posts in the future or the past

v1.5 — January 18, 2009
* Added ability to create pages with different content

v1.5 — January 18, 2009
* Added ability to create pages with different content

v1.4 — January 6, 2009
* Updated for WordPress 2.7
* Completed localization capability

v1.3 — November 1, 2008
* Enabled page parents
* Made the plugin compatible with WordPress internationalization

v1.2 — September 2, 2008
* Enabled adding categories to posts
* Optimized code

v1.1.1 — July 28, 2008
* Cleaned up code and readme file

v1.1 — June 19, 2008
* Added support for multiple page titles
* Built fault tolerance in
* Added new ways to enter pages faster
* Posts and pages can how have comments and pings that are open or closed

v1.0 –– June 18, 2008
* Initial release

View all plugins

For those looking for a solution to proper Excel usage with the CSV feature, Adam, of http://beernews.org/ offers this suggestion:

For any people using only Excel to alter CSV files and get errors when uploading, I think I have your fix.

1) Download the original CSV sample file here and right-click to open the file w/ notepad. Keep it open.

2) Right-click the sample again but open with Excel. Save in Excel. Right-click to open w/ Notepad again. See a difference (i.e. extra quotations all over the place?)

3) Excel puts double quotations around cells (aka fields) where there is a quotation by default but there is a workaround. Go to http://www.mcgimpsey.com/excel/textfiles.html

4) Scroll down to the heading ‘Text files with no modification’ and copy that code underneath.

5) Open that sample csv file back up in Excel

6) Click on Visual Basic Editor in Excel (I think you need to click on Macros in 2003 version or Developer tab in 2007 version)

7) Right-click sheet 1, click on insert module and paste the big code into the large white text box that opens up.

8) Click back to Excel view and click Run Macro. Choose the one that says ‘Text no modification’ and click run.

9) Check the directory on your local machine where you saved the sample file and look for test.txt. Open in notepad, save the file as a CSV file. But do you notice there are no more double quotes everywhere??

10) Upload new CSV file…seems like a pain, but this honestly takes about 2 minutes to do once you’ve learned it. 30 min learning curve.

Tagged with: , , ,
281 comments on “WordPress Plugin: Mass Page Maker
  1. PPI says:

    I am getting this error:

    The date of the CSV is in an incorrect format on line 1 (should be YYYY-MM-DD HH:MM:SS)

    I used your CSV creator though, where i am going wrong?!

  2. DaveDaly says:

    @Wesg: I have one small issue regarding the mass page maker and was wondering if you or any of your readers would point me in the right direction. I want to use your plug-in to create mass pages using the .csv file method but do not want to add the pages to the menu bar at the top. I have downloaded a plugin called Exclude Pages from Navigation which does the job but this means I need to enter each page and tick the box. I would like to know if this can be tied into your plug-in in some way. Thank you in advance.

  3. Jack B. says:

    Hi – Got it working after some fiddling (Google docs was exporting weirdly and then I got confused about the Page IDs for parent, rather than Page name).

    However, when I finally got it to work, I got this error when trying to navigate to the page:

    “Firefox has detected that the server is redirecting the request for this address in a way that will never complete.”

    I went into wp-admin and resaved just one of the pages and for some reason, they all work now. Must have been something to do with WP needing to reorient it self or something.

    Great plugin – thanks!

  4. I keep getting this when using the CSV file, “The post status is incorrect on line 1 (can be either publish, draft, private or password)”

    any ideas??? thanks!

  5. when using the csv file to add pages, how do I get the “no sidebars” in the template chosen?

  6. Sorry, for the mass questions. I found answers for all of my previous questions.

    I do have one last question. Can I add metatags and descriptions using the CSV file for pages? thanks!

  7. wesg says:

    @gilbert peralta: glad you solved the other problems! You can add tags to posts using a CSV file but not pages. What exactly do you mean by descriptions?

  8. I meant the “custom title tag”, “meta description”, and “meta keywords”. Will that be added to the pages anytime soon?? Adding mass pages but not being able to add the meta information that goes with that page is kind of a bummer. Now I have to still manually open up each page and add the appropriate meta information. Does that make sense? THANKS FOR YOUR QUICK REPLY! 🙂

  9. Hello again! Where exactly does the “Custom key, Custom key value, Tags” go when using a .csv file to upload PAGES.

    I’m sure the “tags” goes nowhere, as you said previously that only applies to posts. I would like to know what the custom key and custom key value does? Thanks!

  10. category prolbme says:

    Hi there:

    There is a problem with the cagetory. I can’t put the post in more than 1 category.

    When i made the csv file, in the category column, i filled in category 1, category 2. Then post was pubulish under category “category1, category 2” other than in “category 1” and “cateogry 2” seperately.

    Can you fix this problem?


  11. pood says:

    I’m unable to upload tags using csv.

    It imports, but tags do not show up:

    “test1”, 2010-05-13 12:00:00, “test1,the best”, “excert”, pick up lines, none,

    default, publish, post, open, open, “test1”, “test1”, “cheesy,dirty”, “”

  12. Anime says:

    So uh, I came here looking for the Mass Page “Remover”, but there’s only the “Adder”?

  13. rick says:

    I have 182 records but its only entering the first one when I try importing my csv file. any ideas?

  14. wesg says:

    @rick: I would suggest using a true text editor to save the files with UNIX or Mac OS X line breaks. Sometimes saving as Windows can have an adverse affect.

  15. rick says:

    thanks. should the line end with a comma or not? I think Ive seen it both ways in different examples

  16. Kristina says:

    Is your plugin compatible with 3.0? It look pretty neat for what I may decide to use it for but I don’t want to wreck the new 3.0 install with it.

  17. wesg says:

    @Kristina: I’m hoping to get a thorough check on it in the coming days or weeks. It should work right now, but I can’t confirm that.

  18. Kristina says:

    @wesg: Ok. Thank you. I’ll check back for updates.

  19. Kristina says:

    I tested your plug-in. As it seems all works fine except there are no tags inserted from the CSV file. This is a pity.

    Here is the two lines from the CSV file I am test importing

    This is line 1:

    Post Title 1,2010-07-09 15:10:00,”Lorem Ipsum is simply dummy text of the printing and typesetting industry.Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of \”Letraset\” sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.”,”Excerpt 1″,Category 1,none,default,publish,post,closed,closed,hook-key,Custom Value 1,tag 1,

    This is line 2:

    Post Title 2,2010-07-09 15:10:00,”It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using ‘Content here, content here’, making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \”lorem ipsum\” will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).”,”Excerpt 2″,Category 2,none,default,publish,post,closed,closed,hook-key,Custom Value 2,tag 2,

  20. david says:

    wesg, the tags function doesn’t work any more in wordpress 3.0. I have the same problem as Kristina

  21. Mukul Verma says:

    I keep getting this error for CVS upload

    “The post status is incorrect on line 1 (can be either publish, draft, private or password)

    I have tried the sample file and still get the same error


  22. wesg says:

    To all those with errors in the plugin: please be patient, I hope to release a new version this week.

  23. any chance your updated version will allow tags and meta information with PAGE creation via CSV file?

  24. Kristina says:

    That would be wonderful. Thank you very much!

  25. labedford says:

    I have installed the latest version as I am using WP3 and used for the first time. For some reason the page attributes are not being created: that is parent and template. I used parent ID and a template that is there.

  26. labedford says:

    I meant to also say I am loading up from csv

  27. Richard says:


    I’m creating custom taxonomies for my site, and will be using your plugin to create ~300 pages (I hope it works!) using the CSV file. Any way of having a column for custon taxonomies? I imagine not, but worth asking..

  28. Kristina says:

    A few questions,,, maybe a suggestion or two..

    If tags were inserted into CSV file like this


    Would this insert all three tags with the post? (Still not inserting tags at all though,, but I am thinking ahead a little here)


    Inserting page meta data would be great if you could add that:



    If it was possible to insert custom keys and values (MORE then ONE) via CSV that would be awesome.

    From what I understand if the keys and values are split with a “;” this can be done.

    How would I do this if the custom VALUE fields contained a “;” already.

    Thanks Wesg.

    I am looking for ward to the upgrade 🙂

  29. Kristina says:

    Oh, sorry,, tags may work,, I will test tags and see if they are working on the latest version. I had a 2.6.6 still.

  30. Kristina says:

    I just had a thought and I think this would perfect your plugin..

    If through CSV,, we could have SLUGS inserted.. 🙂 rather then letting the WP generate them,,, this would give us a great control over the blog content.

  31. Kristina says:

    Fatal error: Call to undefined function term_exists() in /home/accessor/public_html/test/wp-content/plugins/mass-page-maker/mass-page-maker.php on line 245

  32. wesg says:

    @Kristina: it appears this function is only available in WP3.0. If you could, please upgrade the software and try again.

  33. John says:

    Hi wesg – can you provide a csv that has the name of each column above it? I noticed you gave us a download of a csv, but it doesn’t indicate what goes in which columns. I tried to figure out most of them by using the automated tool, but I still come up with my post as” password protected” -likely because there’s a field I’m not filling out correctly

  34. John says:

    Hi wesq – so, did you guys get the scheduled post to work? As others have posted, when the elected time comes, the post is showing as missed in the panel, even after visiting my home page or going to the /wpcron of my domain….

    The only way I can fix it is to go in and manually publish 🙁

  35. Julie_cfc says:

    This looks like a great plugin and definitely save me a lot of time, thanks. I’m on WordPress version 3.0.1 so hope it works.

  36. wesg says:

    @John: That the issue I’m working on for the next update. I should be able to release it some time next week.

  37. Shane Hale says:


    Great plug in… I’ve been using it to import close to 4000 pages in WP. Unfortunately, with the latest release I’m receiving lots of errors on csv’s that previously imported fine. I understand you are working on an update to fix some of our import errors, but do you have a copy of the old plug in online that we could use in the mean time?

    Thanks… and great work!

    – shane

  38. John says:

    Hi Wes – also wondering is there a way in the CSV to assign multiple categories to a post in the Mass Page Maker Plugin?

    For example, adding a category of Food, as well as Entertainment. This goes not just for parent categories, but for child categories too, such as Food (Parent), and Breakfast (Sub Category of Food Parent Category)

  39. nooki3 says:

    Dear wesg,

    I upgraded to version 2.6.7. On the older version I use to upload post no problem. Now I keep getting this error message..”The csv file is not properly formatted or has nonescaped characters. Check line 1. 11 columns were found.”

    What am I doing wrong? Is there a new format to upload posts?

    Please let me know. Thanks!

  40. Brian says:

    I am testing my CSV upload with one line and it does not work.

    This is what I have in the one line of my CSV file. I am using Mass Page Maker 2.6.7. Any help would be appreciated.

    “Handling of Materials”, 2009-08-08 08:08:08, “”, “”, uncategorized, none, default, publish, page, closed, closed, “”, “”, “”, “”,

  41. John Newell says:

    WordPress Pluin : Mass Page / Post Maker
    I have tried several times to get it to work with 3.0.1 and it fails each time. I am sure this is an excellent plugin (once I get it to work for me). I tried using the sample CSV file and it, too failed. Possible because the number of fields is different in the csv file to that expected of the plugin page. Can you help? can you please send me a working csv file and I am sure I can

  42. @Shane Hale
    you can download older versions of a plugin hosted on WP.org by going to its download site – in this case http://wordpress.org/extend/plugins/mass-page-maker/download/

  43. Gideon says:

    I need to include this code as the body of my pages. how do i escape it and retain it as below


    thank you.

  44. Gideon says:

    this is the error msg i am getting: The post status is incorrect on line 1. It can be either publish, draft, private or password.

    the first line of the csv is as follows:
    Adamawa State College of Education, Hong, Yola, Adamawa State. 2010-08-24 08:08:08 \”[wp_campaign_1]\”, \”[wp_campaign_2]\”, \”[wp_campaign_3]\” “” none 48 default publish page open closed “” “”

    Pls what am i doing wrong?

  45. pood says:

    Getting the same nonescape error. I’ve used the macro that was mentioned above and also without it with the same thing.

  46. pood says:

    I’ve figured out how to fix the nonescaped error.

    You need the quotes around the title.

  47. Michael says:

    Hey. Just to let you know the CVS Builder adds an extra , and space at the end of each file. You get an error that says to check line 1. 16 columns were found. By deleting the , and space it imports properly, but will not set the status of the files to the proper setting.

  48. Michael says:

    Forgot to post that I tried enclosing everything but numbers and dates in ” marks, but it still didn’t add the pages as drafts. Also, it will not add pages under the correct parent page by inputting the parent pages id.