How to Organize an Online Book in WordPress (Novel or Non-Fiction)

Let’s say you’ve written (or are writing) a book. But instead of publishing it in a traditional way, you decide to “put it online.” By that I don’t mean you make it into a PDF ebook or a digital book. I mean you decide to turn your book into a website.

Using WordPress for this project could work well, but WordPress straight out of the box will probably not suit your needs exactly. And so in this post, we’ll go over how you might structure your book in a WordPress environment.


Different Strokes for Different Folks

There are number of ways to go about turning WordPress into a suitable platform for an online book. At the most basic level, you will need to decide whether to make Posts, Pages, or Custom Posts your principle building block. There could be arguments made for each, but in this tutorial we’re going to make regular WordPress Posts the primary building block – i.e. we’re going to use Posts to publish the content of our book.

It should also be noted that different people will have different preferences and different needs according to their situation. Some may have long chapters while others have many short chapters. Some may have a number of different sections in each chapter while others forgo chapter sections altogether. … And the list goes on.

Therefore, the recommendations listed in this tutorial are just that – recommendations. You may have to change them to suit your particular case, but at the very least, they should give you some ideas.

Why Posts?

The reason I chose to go with Posts for this tutorial is that you typically have more flexibility with Posts.  Of course you could get Pages and Custom Posts to pretty much be as flexible as Posts, but that would take some extra work.

Featured Plugin - WordPress Facebook Plugin

Would you like to add Facebook comments, registration, 'Like' buttons and autoposting to your WP site? Well, The Ultimate Facebook plugin has got that all covered!
Find out more


Building Your Site


OK, enough with all the disclaimers. Let’s get to actually building the site.

Changing Posts to Suit Your Needs

While Posts have a lot of flexibility, they come with two characteristics that you probably aren’t going to want:

  • They usually have a date affixed to them.
  • They publish in reverse chronological order (i.e. the latest post appears first).


Removing the Date from Your Posts

There may be a few exceptions (such as those writing a travelogue, for example), but most people will want to remove the date stamp from their posts. Probably the easiest way to do that is to use a plugin that performs that task for you. The WP Post Date Remover plugin will do that.

If you’d like a more manual option, then you can take a look at this post.

Publish Posts in Chronological Order

As well as removing the date stamp from your posts, most will also want their posts to publish in chronological order (i.e. the first post stays at the top). You can do that with the Default Sort Ascend plugin.


Featured Plugin - WordPress Google Maps Plugin

Simply insert google maps into posts, sidebars and pages - show directions, streetview, provide image overlays and do it all from a simple button and comprehensive widget.
Find out more


Use Categories for Your Chapters and Major Sections

Perhaps the easiest way to organize all you content is, of course, with your categories function.

If you are breaking your book into major sections (e.g. Part I, Part II, Part III, Part IV), then you will want to make categories for each of those.

Under each of those categories, you will create a child category (aka sub-category) for each of your chapters in that part of the book. For example, I have created a hypothetical book with four major sections and twelve individual chapters.

The outline for my hypothetical book looks like this:


Part I – Birth (parent category)

  • Chapter 1 – January (child category)
  • Chapter 2 – February (child category)
  • Chapter 3 – March (child category)


Part II – Beginnings

  • Chapter 4 – April
  • Chapter 5 – May
  • Chapter 6 – June


Part III – The Thick of It

  • Chapter 7 – July
  • Chapter 8 – August
  • Chapter 9 – September


Part IV – The End

  • Chapter 10 – October
  • Chapter 11 – November
  • Chapter 12 – December


And here’s how my category set-up looks in the backend.

Editing Chapter Structure (i.e. Categories)

Of course you’ll want to plan things out in advance as much as possible, but one of the nice things about categories is that they are easy to edit. You can easily change a child category into a parent category or vice versa. You can also easily add new categories to your parent categories, make sub-sub categories, and more.

Some will want to (or need to) pay more attention to categories and sub-categories than others. It all depends on what you want to achieve. However, at least some basic attention to this overall structure will give you a sound foundation behind the scenes. This sound foundation will allow you more flexibility down the road and make it easier for you to lead your visitors through your book in a logical way (or give them clear navigation so they can jump around as they like without getting lost).

A Plugin for Extra Help

Writing is a messy business, and often you’ll find that you need to add a section here or rearrange a few sections there. As you will be using your categories for the different chapters and sections on your site, that means you may want to rearrange them at some point. WordPress doesn’t do this by default, but the My Category Order plugin will allow you to do that.


Featured Plugin - WordPress Appointments Plugin

Take, set and manage appointments and client bookings without having to leave WordPress. Appointments+ makes it easy.
Find out more


Custom Menu Creation

Once you have your book’s main sections and chapters laid out (i.e. your parent categories and child categories), you’ll want to display them, so your visitors can clearly follow the flow of your text in the way you intended it to be followed.

A sound category structure will give you the flexibility to take advantage of many things (too many to list here, or to even imagine), but perhaps the easiest way to put a clear, simple navigation menu on your site is to use the WordPress Custom Menus system. (Appearance > Menus)

When your categories are laid out logically in your backend, they will also appear logically in your Custom Menu system, making it easy to both create an original menu, as well as add new sections when needed.

Take a look at how clearly everything is organized on my Custom Menu page.

From there it’s easy to create an equally organized Custom Menu.

I can then pull that Custom Menu into a widget on my sidebar. (Appearance > Widgets)

And here’s what it looks like in action.


Featured Plugin - WordPress Ecommerce Shopping Cart Plugin

Out of all the WordPress ecommerce plugins available, MarketPress has got to be the winner - easy to configure, powerful functionality, multiple gateways and more. A simply brilliant plugin!
Find out more


Displaying All Sections

Of course different people will have different needs, but one thing that may work for some is to also display ALL of your sections (i.e. all your posts) in one long column down the sidebar.

There are a few things to note about this method. The first is that it will NOT separate your sections out into different chapters. It will simply list them all in an undifferentiated column. However, it will list your sections (your posts) in the correct order from beginning to end – as long as you have them ordered correctly in the backend. (More on that later.)

You can do this by using the default “Recent Posts” widget and increasing the number of posts to a number that will be high enough to include the number of posts/sections you have. (Appearance > Widgets)

And here’s what it looks like.

Ordering Your Posts in the Backend

As stated at the beginning, one of the reasons to use Posts over Pages (or Custom Posts) is that they may afford the average user a little more flexibility out of the box. And one advantage that Posts have over Pages is that they are perhaps easier to order and reorder on a large scale … if you know the trick.

So what’s the trick?

Well, Posts, as you probably know, are ordered by date. Whether you are going in chronological order or reverse chronological order, WordPress still looks at the date and the time on the post in order to determine how to arrange it in relation to all the other posts.

Because of this, you can take advantage of time stamps to get your posts in the order you want them.


Featured Plugin - WordPress Q&A Site Plugin

It's now incredibly easy to start your own Q&A site using nothing more than WordPress - The Q&A plugin simply and brilliantly transforms any site, or page, into a perfect support or Q&A environment.
Find out more


Setting Up Your Time Stamps

If you write a post in WordPress and then publish it immediately, the post gets stamped as being published at that time. However, you can change the time stamp on your post to any date. You can control the time stamp on the Write/Edit page or in the Edit Posts page.

When starting out, my suggestion would be to publish each post with a time stamp at least a day apart. In that way, you can easily add new sections anywhere into your existing list of sections. All you need to do is to pick a time stamp that rest between the time stamps of the posts on either side.


An Example

So, let’s say I’m going to start posting a book to my site today (May 9 at 1 p.m.). I already have fifty different sections written that I want to post; therefore, I will want to set the time stamp on the first section to be fifty days in the past (March 10 at 1 p.m.). Then for the second section, I will set the time stamp to be for forty-nine days in the past (March 11 at 1 p.m.). And the third will be for forty-eight days in the past (March 12 at 1 p.m.), etc.

In this way, if I decide that I want to add a section that comes after the first section but before the second section, I can then easily just pick a time stamp that rests between the two existing time stamps (i.e. AFTER March 10 at 1 p.m. yet BEFORE March 11 at 1 p.m.). So, for example, I might pick March 10 at 9 p.m. I still want to leave myself clear room on either side in case I decide to add another section.

When I do this, my new section (my new post) automatically becomes the second section in my book, and it pushes the original second section to third … and on down the line for each other section.

(Note: If you are using Custom Menus, then you may still need to manually add your new sections into your navigation, depending on how you’ve set things up.)


Adding Previous & Next Navigation

Something else you will no doubt want to do is to add “Previous and Next” navigation links to the bottom of your posts. Some themes will come with these links included, but many don’t, so we’ll quickly go over how you can get them on your site.

There are plugins you can search for that will do this for you, but you can also manually add a little bit of code to the bottom of your theme’s single.php file. (Some themes these days call in a loop file to the single.php file, and so depending on your theme, you may want to place this code there instead.)

There are different ways to determine exactly how your Previous and Next links display, and so you can check out more info on it at WordPress if you like.

In the meantime, we’ll go over some code that should work for you. Place the following at the bottom of your single.php file. (Appearance > Editor > Single – single.php)

<?php previous_post('&laquo; &laquo; %', '', 'yes'); ?> | <?php next_post('% &raquo; &raquo; ', '', 'yes'); ?>


It will output links for you like this:


Featured Plugin - WordPress Pop-Up Chat Plugin

No javascript required, no third part chat engine, just fully featured chat right in your own database on your own WP sites - couldn't be easier.
Find out more


Some Plugins to Consider

I’m sure there are tons of plugins out there that could help you present your online book in a better way, but I’ll just mention two here because they seem fairly fundamental. Both of these are more for non-fiction books than fiction.

Index Press

The first is called Index Press. It helps you create an index of your site much like a regular book would have.

Here’s a look at it in action.

WP Section Index

The second is not quite as fundamental, but still useful for some. If you choose to write VERY long sections, and you keep them all on a single page as opposed to breaking them up, then the WP Section Index plugin will generate a mini-index for a single page based on your headings.

For example, you can set the plugin to make an index of all H2 headings in a page. You then set up the plugin’s widget in the sidebar, and it will appear if you have H2 heading in your page. If you don’t have H2 heading in your page, it won’t appear.

Here’s what it looks like in action.



And finally, not a plugin, but a little built-in WordPress trick. You can also choose to break a very long post into multiple pages. It’s a simple trick that you can learn here.

The result looks like this (the style will vary according to your theme):


Final Words

Of course everything above is just a basic blueprint. And you will need to decide on things like your homepage, but this basic guide should help you get started. In fact, it may be plenty enough for many. You will want to be careful about adding too much navigation and too many bells and whistles. You don’t want your visitors to get confused.

Keep it simple, make it logical, and provide navigation that will be obvious to your visitor.


Featured Plugin - WordPress Membership Site Plugin

If you're thinking about starting a paid, or just private, membership site then this is truly the plugin you've been looking for. Easy to use, massively configurable and ready to go out of the box!
Find out more


Photo: Poet and Heart Shaped Book from BigStock

Comments (60)

  1. What a great article. Finally someone has addressed how to organize an entire site with wordPress based on it’s use and purpose. Thanks Joseph.

    Any chance you might do this for other basic content areas? It would make an excellent book. Thanks again.

      • Joseph: I’m not really sure. My first interest would be in organizing a travel related site. It would also be interesting to see some basics on product sites or services sites.

        It’s always been an issue to me when to use pages and when to use posts. You start in one direction and hope it works best but there is never a real rationale or “state of the art” method. You’ve at least addressed it for book content. What you have done is probably applicable in other areas. I would love to see more.

  2. Hi there, thanks for a great post! Would you happen to have any advice on a good approach for charging to read the book/website? (ie structuring some kind of access control). I know this is quite a broad question, but any general advice would be appreciated!

  3. I’m in the process of posting a book on my blog. What is the best way to make the post pages from a previously printed book? I have permission from the author to reproduce on-line and want to follow your info; but if I make them jpg’s they will be unsearchable. Thanking you in advance for your comment and help.

    Another question; what do you suggest for an off-line editor for making post to WordPress? Thank you for this great site and info! My site is

  4. Hello Jan – Yes, you will probably want to make sure that your pages are text (not images). If you have a pdf of the book, perhaps could get text from that. If you only have the physical book, then I’m not sure what you can do other than simply copy it (or get someone else to copy it — maybe hiring someone from a freelancer site like

    In terms of offline editors, you could use Microsoft Word and then post your articles into WordPress using the Microsoft Word paste button (it’s in the second row of options on your visual editor — you can see that second row in this post:

    You might also try Windows Live Writer.

    Or you could actually even try posting directly from Microsoft Word:

  5. How about if we use the WPMU CustomPress plugin to create a custom post type called Chapters? And we could create a taxonomy called Sequence. We might have to use something like LoopBuddy to order the chapters according to Sequence.

    This could also work for online courses. However, we might need several layers of depth, e.g., Topic, Lessons, and Sub-Lessons.

  6. Arthur – You’re right. It doesn’t look like a plugin error, but it may be conflicting. It only happened when I activated the plugin.

    If you’re on G+, connect with me there. (Link in sig box.)

  7. Thank you – I am trying to implement this solution for reports I just need to figure out how to implement multiple of these.
    I will let you know what I come up with if I can get it working cleanly. Excellent post!

  8. Thank you Joe. My father Jean Rullier (87 years old) has written 2 books, and I was searching a way to help him publishing easily his work. I have found now !

    • Glad it helped. Also, if you’re looking to publish his books, don’t forget that it’s easy to self-publish on places like Amazon. That’s something else you might look into.

  9. Interesting post, but I wonder if you guys have a fanfiction archive plugin?

    If not I would like to see one that would act like eFiction (, but with WordPress handling users and the theme with widgets for latest stories, random story, featured stories, etc.

    Nathan P.

  10. Hi,
    Very very useful. I found some of the tips on my own but the whole article is awesome ; thank you so much.
    A question now :). Could you give me some criteria to find a theme that suits well to this kind of project ? We could say that any theme with a decent blog page would do so properly, but maybe you have a different view ?
    Once again, thanks so much.

    • Yeah, I think any theme will do as long as there’s a sidebar. I think the most important thing is making it so the navigation is clear and obvious. And you can do that with most themes.

      • I agree, but I suppose some kind of themes are best suitable. Simple ones for instance, especially ones created for basic blogging, what do you think ? Because as you say, the main thing comes from navigation and options to deactivate in fact.
        Thanks :)

          • :)

            Nevertheless, I have a problem with “Previous and Next links” as the link reaches to a deprecated function. Is it still the right way to do ?

            And a question about the to make a post appear on several pages. It just makes a cut on the post, but I can’t see items for a pagination. So frustrating !

            Thanks !

        • The previous and next code is still working for me. I looked on, and I don’t see that as being deprecated on this page:


          “And a question about the to make a post appear on several pages. It just makes a cut on the post, but I can’t see items for a pagination.”

          I’m not exactly sure what you mean by this. Can you say it another way?

          • 1/ Ok, I don’t know where I saw the functions were deprecated. Anyway :)

            2/ I mean that I cannot reach the following pages of the post. Only the first one appears with no links for navigation.

            3/ And most important for me : in the article, you mention a plugin to remove dates from posts and it works perfectly. But what about other stuff like : comments, by, in, … ; all these little data about the post ?

            Thanks so much, once again.

        • 1. OK

          2. Oh, do you mean when you use pagination that you don’t see all the pages?

          I just checked pagination (breaking a page into several pages), and it worked for me. Are you placing the code (the nextpage part) in the HTML view?

          If you are, then I’m not sure what the problem is. Perhaps your theme or a plugin on your site is interfering. Can you test it on another site? I just tested it on a site and on It worked in both places.

          3. You can remove all the little words like “by” and “on” etc. by editing your theme files. Go to Appearance > Editor.

          For example, on your single.php file, look for the section where it prints the author’s name. It will probably have the word “by” in that section. Just delete it.

          Some themes, however, are a little more complicated than that. Instead of putting the all code in the single.php file, they will call in a different file with the author information. You will need to track down where the information is stored in your theme.

          You’ll need to do this in each place you want those little words removed — for example, in the single.php file (the post page), the index.php file (the home page), etc.

          • Thank you Joe. Things are getting clerear now.

            As far as my project takes a better direction, I still have some points to consider. Can you confirm I will get one category per chapter (post) ?

            Then, the custom menu contains links to categories, that’s ok ?

            But my problem is that the category page does not show the post completly. I have the “read more” button for instance. And other annoying stuff.

            Thanks again.

  11. Greetings Joe!

    This is a very helpful post. I’m trying to publish my creative writing, specifically a crime fiction novel, via WordPress. I want to do chapters and so forth. But I also want to have visitors/readers have access to more things: characters, locations, quotes, faqs, and so on. How might you organize this? Perhaps with the index idea or maybe the wikipedia thing would be better? Your thoughts would be helpful. Thanks, Craig.

    • Craig – If you are using Posts as the main building block for the story content (as I’ve done in the example), then you could use Pages for other peripheral content. You can then build menus and place them where you think appropriate.

      That would be my first thought anyway.

  12. Another thing sir. Is there a way that when I write a post and then published it, the published post will look like just a book (like an e-book) even if its not really that long. I find the usual posting somehow monotone so I want it to be more creative.. Thanks in advance.