How to Create a WordPress Document Library
A WordPress document library presents your documents in an easy-to-find format. You can use a document library as a file manager to keep things organised, share resources within your organisation, create a knowledge hub or a publications database. Your document library might be public, or you can keep it private and available to specific people only.
It’s surprisingly hard to find a good document library WordPress plugin. There are lots of document management and file manager plugins for the WordPress admin, but very few can create a front end document library for users. The ones that do exist have poor ratings and a lot of negative feedback.
This is where Posts Table Pro comes in. In this tutorial, I’ll explain how to use Posts Table Pro as a document library WordPress plugin. This is a fantastic way to create a document library in WordPress.
Later, I’ll also share some tips on how to make your document library (or just parts of it) private and hidden from public view.
Step-by-step video tutorial
Watch me creating a WordPress document library using the method described in this tutorial. Alternatively, keep reading for full written instructions:
Posts Table Pro – the perfect WordPress document library plugin
The Posts Table Pro WordPress plugin instantly creates interactive WordPress tables displaying all your documents on one page. You can use it to list documents, PDFs, publications or any other type of document in a searchable, sortable table with filters. This makes it easy for people to find the documents they’re looking for and either read them online, or download a file.
Before we start, I’ll show you an example of Posts Table Pro in use for a WordPress publications library.
See a document library in action – RJ Lee Group publications library
RJ Lee Group are an industrial forensics analytical laboratory and scientific consulting firm. Their staff make regular presentations and public in peer-reviewed journals, so they wanted a publications library on their website showcasing the firm’s work.
With over 300 publications to list in the library, they needed a user-friendly table that makes it easy to find a specific publication.
They used Posts Table Pro to create a publications library listing their articles. The table displays 25 publications per page with pagination allowing users to view older documents. It includes columns for publication title, citation and date.
Each column can be sorted, and a search box above the table lets you further navigate the publications in the list.
Create a WordPress document library
Like what you see? Great! I’m now going to show you how to create a WordPress document library for your publications.
In the next 4 sections we’ll cover:
- Storing documents on your website
- Adding documents to your library
- Creating a document library
- Making your document library private
1. Decide how to store your documents in the library
Posts Table Pro doesn’t store your documents for you – you have WordPress for that. Posts Table Pro’s job is to create a library of documents added to your WordPress website. If your documents are already stored on your website and you’re ready to create your WordPress document library, you can skip ahead to step 3.
If not, carry on reading as I’m going to cover everything you need to know about:
- Creating a custom post type to store your documents
- Adding extra document data
- Storing documents as website content
- Storing downloadable documents
Posts, custom posts or pages?
The Posts Table Pro plugin supports standard WordPress posts, pages and custom post types. This means that you can add documents to your library using any of these methods:
- Add each document as a post in the ‘Posts’ section of the WordPress admin.
- Add each document as a standard Page in the ‘Pages’ section of the WordPress admin.
- Create a custom post type called ‘Documents’, ‘Resources’ or similar. This means that there will be a ‘Documents’ or ‘Resources’ section in the left of the WordPress admin where you can store your documents.
Most people use a custom post type for their documents or resources, so that’s what we’ll do in this article. (If you’d rather use standard posts, that’s fine – in step 3, you just need to remove post_type=”documents” from the Post Table Pro shortcode examples in this article. To use pages, just add post_type=”page” to the shortcode instead.)
I’ll show you how to create a Documents custom post type using the free Pods plugin. I recommend Pods because you can also use it to create custom fields and taxonomies, which are perfect for storing extra data about your documents. However, you can use Posts Table Pro to create a WordPress document library regardless of which plugin you use to store the documents. Other good options include Custom Post Types UI and Advanced Custom Fields. If you’re a WordPress developer, you can create your custom post type without using a plugin. But Pods is the only plugin I know that lets you create ALL the data you need with a single plugin.
Store extra data in custom fields and/or taxonomies
By default, your Documents custom post type will contain the same information as standard WordPress posts: title, content etc. But there’s lots of other information you might want to include in your WordPress document library. For example, you might want to divide it into categories, or store information about the publication date, file size or file type. You can store all this extra information in custom fields and taxonomies.
Here are some tips to help you decide whether to store each piece of data as a custom field or taxonomy:
- Custom fields – use these to store unique data about each item in your WordPress document library. For example if you’re using your document library to store internal publications, each one might have a unique document number. You would store the document numbers as a custom field.
- Custom taxonomies – taxonomies are an opportunity to sort and organise data. Use these to store information that will apply to multiple documents in your library. For example, you might want people to be able to filter the document library to view documents from the year 2016. To do this, you would create a taxonomy called ‘Year’ and assign each document to the appropriate year.
You can also use standard WordPress categories and tags to store data about your documents. These also count as ‘taxonomies’ as each tag would be used for multiple categories and tags. The problem with these is that the built-in categories and tags will be shared across other content types, and not just your document library. For example, the same tags will be used for normal blog posts and document. I recommend using custom taxonomies for these instead, as it keeps the data separate from the other parts of your website.
Write a list of which custom fields and taxonomies you’ll need for your WordPress document library. Once you’ve done that, keep reading to learn how to create your Documents custom post type, plus the custom fields and taxonomies.
How to create a custom post type for your documents
When you create a custom post type to store the resources in your WordPress document library, it will appear as a separate link in the left hand side of the WordPress admin. You can call it anything you like, e.g. ‘Documents’, ‘Publications’, ‘Articles’ or ‘Resources’. You’ll add each document as a separate post in this section of the admin, and later display them as a document library.
- Go to Plugins → Add New and install and activate the free Pods plugin.
- On the left of the WordPress admin, go to Pods Admin > Add New > Create New.
- Next, you’ll see the ‘Add New Pod’ screen. Choose ‘Custom Post Type’ from the ‘Content Type (like Posts or Pages)’ drop down list.
- Choose a Singular and Plural label. This will appear on the left of the WordPress admin. For example, the Singular Label for a WordPress document library might be ‘Document’ and the Plural might be ‘Documents’.
- Click the ‘Next Step’ button.
- On the next screen, add as many custom fields as you like to the custom post type you just created. Remember – custom fields are for storing unique data about each document such as a document reference, file size or download link. Don’t use them for information that you want to be able to filter by – we’ll use taxonomies for this in a minute.
- Next, go to the ‘Advanced’ tab and scroll down to find the ‘Supports’ and ‘Built-in Taxonomies’ sections. Tick any fields that you want to be available for your custom post type. For example, if you want to include an image column in the WordPress document library then you should tick Featured Image to activate this feature.
- Click ‘Save Pod’.
How to make your documents downloadable
Some WordPress document libraries add the documents as website content rather than downloadable content. By this I mean you’d enter the content of your document within the main content area for your custom post. People would then view it online without downloading anything. If you’re storing your documents in this way, you can skip ahead. Or, if you’re planning on including downloadable documents in your library, read on.
Your document library can contain various downloadable documents, including PDFs, Word docs and PowerPoint presentations.
Add the document download link to a custom field
Most people use a custom field to store a clickable link to the document. They then display this custom field as a ‘Download’ column in the WordPress document library. Here’s how to do it:
- Upload the document to the media library (Media > Add New) and copy the File URL.
- Create a custom field to link to the file. To do this, choose the WYSIWYG Visual Editor custom field type. When you start adding documents in a minute, use this field to add a clickable link to the downloadable File URL for each document.
- Add the custom field to the document library. I’ll tell you how to do this in step 3.
Tip: If your theme comes with styling for buttons, then you can also add a button to the custom field instead of a basic text link. Or if you’re feeling creative, then you can even upload an image or icon and make it clickable!
Create direct document downloads with the Page Links To plugin
If you don’t want to bother creating a custom field for your downloadable documents, check out the Page Links To plugin. This free plugin lets people download the file simply by clicking on a title in the document library table.
It works perfectly with Posts Table Pro. It’s ideal if you want people to download directly from the table instead of accessing the single post page. They can simply click on any title in the document library and download the file immediately.
How to create custom taxonomies for your WordPress document library
So far, you have created an area to store items in your WordPress document library. You’ve also created custom fields for storing extra information about each document in the library. In step 3, you’ll be able to display them in your document library using Posts Table Pro. But before we do that, I’ll tell how you to create custom taxonomies for grouping and filtering within the document library.
- Navigate to Pods Admin > Add New and click ‘Create New’.
- On the ‘Add New Pod’ screen, choose ‘Custom Taxonomy (like Categories and Tags)’ from the dropdown list.
- Add a Singular and Plural Label for the taxonomy. For example, if you’re creating a taxonomy to categorize your document library then the singular could be ‘Document Category’ and the plural could be ‘Document Categories’.
- Click on ‘Next Step’.
- Don’t add any custom fields here – you’ve already added custom fields to the Documents post type. Instead, click on the ‘Advanced Options’ tab and find ‘Associated Post Types’. Select the Documents post type you created a minute ago.
- Click ‘Save Pod’.
2. Add the documents to the library
Once you’ve created your Documents post type and all the fields you need, it’s time to add content to the document library. This is a similar process to adding standard WordPress posts:
- Go to your custom post type and create a new post for each document that you will be adding to the library.
- Add the document title as the main title at the top of the page.
- Add a short description in the area where you would normally add the post content. I recommend keeping this short if you will be displaying the description in your document library because that will let you display the full text without being truncated.
- Add any custom fields, taxonomies, images etc to store the data about your document.
- Hit ‘Publish’, and repeat these steps for each document.
Tip: If you have lots of documents to upload, then you can add them in bulk using a WordPress import plugin. The built-in WordPress importer doesn’t support extra data such as custom fields and taxonomies, so you’ll need a more advanced solution such as WP All Import.
View your document pages
If you try creating a document and click ‘View Post’, you can see what the single post page for your documents will look like. This is where people will be taken after they click on a link in your document library (depending on how you set it up). It will have a similar layout to your blog posts and won’t include your custom fields and taxonomies.
If you’re planning to add the content of each document directly to your website, instead of requiring people to download a file, then people can use this page to view the full content. However, most WordPress document libraries provide downloadable documents and don’t require a separate page for each document. There are 2 easy ways to disable this:
- Use the links option in Posts Table Pro to disable links to the single document page.
- Use the free Page Links To plugin to link each document directly to the download URL. When someone clicks on a document in the document library, they will be taken straight to the download link and will never see the single document page.
If you do want to use the single document page, then you may wish to create a custom template for your documents post type. If you don’t know how to code a custom template, we’d recommend Codeable for small tasks like this.
3. Create your WordPress document library
Now it’s time for the fun bit: creating a WordPress document library to display your documents.
To do this, you’ll need the Posts Table Pro plugin. Once you’ve purchased, installed and activated the plugin, you can add your document library to any page of your website. Using a shortcode, the plugin will automatically display all your documents as an interactive table.
In the knowledge base, there are dozens of options that let you configure your WordPress document library exactly as you like. To get you started, I’ll show you two popular ways to display a document library and the shortcodes required. Mix and match the shortcodes to create your own.
WordPress document library with links to document posts
This shortcode is suitable if you’ve added the content of your documents directly to your custom post:
[posts_table post_type="document" columns="image,cf:reference,title,cf:download_link,tax:document_category" filters="tax:document_category" page_length="false"]
It will create a WordPress document library just like this:
The shortcode has been configured with the following details:
- Display custom posts in the ‘document’ custom post type
- Display columns for Image, Title, Reference (custom field), Content (i.e. the beginning of the description field), Download Link (custom field) and Document Category ((taxonomy). You will need to edit the columns section of the shortcode to use your own columns.
- Show a filter dropdown for Document Category (taxonomy). Again, you will need to specify which filters to include in your own document library.
Your visitors can click on the image or the title of each document to view the single post page. They can click on the links or buttons in the Download custom field column to download the document. Clicking on a category will filter the document library by that category.
WordPress Document library with direct download links
This shortcode lets you add direct links to downloadable files to your document library. It will display the data shown in the below screenshot.
[posts_table columns="title,content,tax:doc_year,cf:file_type,cf:download" links="none" post_type="documents" sort_by="title"]
The shortcode has been configured with the following details:
- Display custom posts in the ‘documents’ custom post type.
- Display columns for Title, Content (i.e. the beginning of the description field), Year (taxonomy), file type (custom field) and Download (custom field – this is where I added the HTML code to display the content of my custom field as a link – see above).
- Sort the table by year in descending order.
- Disable the links to the single document page.
Again, copy the above shortcode to get started. You can then use the knowledge base to configure the document library to your heart’s content.
4. Create a private WordPress document library
Lastly, I’ll tell you how to create a private and hidden document library in WordPress. You can hide your entire document library – or just specific parts of it – with the Password Protected Categories WordPress plugin.
It works by password protecting one or more categories within your WordPress document library. Users must enter a correct password to unlock the category and view the private documents inside it. Once they’ve unlocked a category, they can navigate within it and won’t need to re-enter the password for several days.
How to build a private WordPress document library
- First, create the document library by following the instructions earlier in this tutorial. However, instead of adding your Posts Table Pro shortcode to a normal page in WordPress, you need to add it to your category archive template. This will automatically list documents in the table-based layout whenever someone visits your document category pages.
- Next, get the Password Protected Categories plugin. Install it using the instructions in the Getting Started email.
- Go to Documents → Categories. (If you can’t see this, then go back to the settings for your ‘Documents’ custom post type and make sure you have activated categories/taxonomies.)
- Create 1 or more password protected categories for the WordPress document library. Some tips:
- If you want to create a completely private document library, create 1 password protected category and put all your documents within it. If you want to add sub-categories, that’s fine. Leave them set to ‘Public’ and they’ll automatically be protected with the same password as the main document library category.
- If you just want to protect parts of your document library, that’s fine too. Structure it into as many categories and sub-categories as you like. Some of these can be set to public and others password protected.
- Go to the main Documents list in the WordPress admin and categorize your documents as needed. Documents in password protected categories will automatically be protected with the same password as its category.
- Finally, create a login page for your users by adding the shortcode [category_login] to any page on your site. They can enter the password here, and it will direct them to the private document library category.
It’s time to set up the WordPress document library plugin
Now you know how to use the table plugin to create a WordPress document library! As you can see, Posts Table Pro is ideal as a WordPress document library plugin.
To get even more value for money, you can create tables for lots of other types of content too:
- Use Posts Table Pro as a WordPress members directory plugin
- List upcoming events in a WordPress events table
- Create a WordPress video gallery or audio library
- Build a WordPress publications library or knowledge hub
- Create a content table or index of your blog posts or pages
- Host your own searchable podcast library
You can buy Posts Table Pro here. And if you like it, register as a Barn2 Media affiliate and get 30% discount for recommending our WordPress plugins! I hope you enjoy creating your WordPress document library!