Creating a product page - Meta Box + Oxygen
I’ll create a car rental page for example of a product page. It’s a singular page of a custom post type.
Product is a kind of custom post type. In this case, each car for rental will be a post in that post type. Besides the default information such as title and content of the post, a product may have some extra information. E.g. each car will have some information such as price, image gallery, type of fuel, etc. So, we use custom fields to save that information.
For this practice, we need these tools:
- Meta Box: to have framework to create custom post types and custom fields;
- MB Custom Post Type: to create custom post types for the product;
- Meta Box Builder: to have a UI on the backend to create custom fields to save extra information of product.
The last one is Oxygen which is used to build the page. You should use the 3.9 version or upper, which has integration with Meta Box already.
1. Creating a new custom post type
Go to Meta Box > Post Types > New Post Type.
Enter the name for the post type, and if you want some further configuration, follow this tutorial.
2. Creating custom fields
Go to Meta Box > Custom Fields, then create fields as you want for the products.
Here are the simple fields that we created:
After creating all the essential fields, move to the Settings tab > Location > choose Post Type as Car Rental to apply these fields to it.
Back to the post editor, you will see all of the created custom fields. Just fill in some data.
3. Creating a template with Oxygen
Go to the Oxygen menu and create a new template.
In the settings of the template, choose a design that you want the template to inherit from, then choose your post type in the Singular section to apply the template to it.
Now, go to edit any post, we can see the template is already rendered for it.
After filling in the information for the product, let’s edit the template.
First, select a Section component to cover all of the product information.
If you want to set columns for the content as below, let’s add a Column component.
Just set the Column Layout as you want.
In this Column component, there’ll be two div tags available, equivalent to two columns. In the first div tag, select the Carousel Builder component to display the image gallery as a slider.
Choose Meta Box gallery in the Carousel content section, and fill in the ID of the gallery field in the Meta Box image field section. Then, all the images saved in that field will be displayed.
You can move to the Advanced tab to set the slider display as you want.
Go to the second column with the 2nd div tag. To get the title of the post, which is the name of the product, add a Heading component. Then, insert data from the post title into this component.
For the product description, choose the Text component and connect it with the content of the post.
Also, choose the Text component for the price of the product. The pricing includes the currency, so you can type some text and symbols in this component to get the right format, then insert data from the field.
For all of the following section, I’ll add a div component.
For each row in this section, I also use a div component.
In the div for a row, choose the Heading component and name it as the name of the characteristic. Then, add a Text component and connect it to the field, which saves the corresponding data to the characteristic. Last one, style these two components and the div that covers them in your own way.
For the remaining characteristics, just clone this div, which is used for a row by duplicating. Then, just change the headings and link the Text components to the right fields.
We’ve finished getting all of the information about the product and displayed them on the product page. You can style them as you want.
Here is the result after styling.