If you want to give users options to read previews or download PDF files, you shouldn't skip this article. Here is a quick tutorial on how to create an ebook page with 2 buttons allowing preview and download the ebook using MB Views.

In such cases, I created an ebook page as an example:

An ebook page with download and preview button

Video Version

Before Getting Started

This archive page shows the product's detailed information along with 2 buttons. The first one allows directly downloading a PDF file. And the second button is to view it online.

Each ebook will be a unique post of a custom post type. The name of the ebook and its image are the title and featured image of the post. We'll use a custom field provided by Meta Box to store the PDF file and the two buttons will link to this file.

For this practice, we need the Meta Box core plugin to have a framework to create a custom post type and custom fields. You can download it directly from wordpress.org.

Besides, we use some Meta Box extensions for more advanced features:

  • MB Custom Post Type: to create a custom post type for ebooks;
  • MB Views: to create and style the template for the page without touching the theme files;
  • Meta Box Builder: to provide a UI on the back end to create custom fields.

You can install them individually or use Meta Box AIO.

Create a Custom Post Type

Go to Meta Box > Post Types > Add New to create a new post type for your ebooks.

Create a new post type for your ebooks

After publishing, you will see your new post types in the admin dashboard.

A new post types in the admin dashboard

Create Custom Fields

I’ll create only one custom field to store the PDF file for the ebook. So choose the File Advanced field.

Create custom field to store the PDF file for the ebook

Next, move to the Settings tab. Choose Location as Post Type and then select ebook to apply this field to the post type.

Select ebook to apply the field to the post type

Go to the post editor, you will see the created custom fields.

The created custom fields

Create the Page Template

Create a new page

I’ll create a new page first.

Create a new page

A new ebook page

Create a Template

Then, go to Views of Meta Box to create a new template for the page.

Create a new template for the page

Query the Posts

Add some code to the Template tab as follow:

Add some code to the Template tab

{% set args = { post_type: 'ebook', posts_per_page: -1 } %}
{% set posts = mb.get_posts( args ) %}
{% for post in posts %}

{% endfor %}

Let’s get through each line with me.

{% set args = { post_type: 'ebook', posts_per_page: -1 } %}

This line of code is to declare that we will get posts from the post type that has an ID as ebook. The number -1 means that we will display all the posts on the page. You can change it as you want.

Next, we’ll use the mb.get_posts( ) function to get posts.

{% for post in posts %}

{% endfor %}

This is the loop to display all the posts.

Display the Ebook Information

To display the ebook information, you can add code or just insert fields from the right sidebar into the above loop.

Insert fields from the right sidebar into the above loop to display the ebook information

Choose the Post thumbnail field to display the book images.

Choose the Post thumbnail field to display the book images

Then, choose the Post title to show the book's name.

Choose the Post title to show the book's name

And click on Post content for description.

Click on Post content for description

Create Buttons

To have a download button, insert the custom field that we created.

Insert the custom field that we created to have a download button

Change some codes to name the button and set it to download ebooks directly.

Change some codes to name the button and set it to download ebooks directly

Insert the custom field once again to have the preview button.

Insert the custom field to have the preview button

Just add a name for the button.

Add a name for the button

Assign the Template to the Page

Move to the Settings section of the View. Set the template in the type of Singular page.

Set the template in the type of Singular page

Choose the location as Page and select ebook shop to apply the template to the page.

Select ebook shop to apply the template to the page

After publishing, go back to the page on the front end, all the product information and buttons are displayed already.

The product information and buttons are displayed already

Style the Page

With MB Views, we should use CSS to style. So, let’s add some div tags and classes for elements.

Add some div tags and classes for elements

Next, add some CSS code to this tab.

Add some CSS code

All of these codes are available on our Github, so you can refer to them.

After updating the template, you’ll see the new look on the front end. You can click on the Download button to get the ebook or choose the Preview button to read it online.

The new look ò the page on the front end after styling

Last Words

Adding download and preview buttons on an ebook page is quite easy. I hope this tutorial can help you to do that easier. If you have a concern about using Meta Box and MB Views doing something, let us know in the comment.

Leave a Reply

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