How to Create a Video Gallery Page Using Meta Box + Oxygen
Tags: metabox, customields, gallery, oxygen
Published: 2022-07-05 02:03:25

Do you own a website that creates content and provides a lot of helpful video posts? If so, you need to have a great way to show an eye-catching and informative video library.

Today, we’re going to <strong>create a video gallery page with Meta Box and Oxygen</strong>. Here is my example:

<!--more-->

<img class="aligncenter" src="https://i.imgur.com/xg6ygqB.png" alt="The example of creating a video gallery page with Meta Box and Oxygen" width="1000" height="830" />
<h2>Video Version</h2>
https://youtu.be/rs2kJI8NZYQ
<h2>Before Getting Started</h2>
The gallery includes a lot of videos, and each one will be saved as a post. So, we'll have a custom post type for it. All the information about the video such as title, description, and author is the post’s default information.

To avoid making your site heavier, we will save the videos somewhere else, for example on Youtube. Then, I will save the video link in the custom fields of the post.

<img class="aligncenter" src="https://i.imgur.com/yBa2unw.png" alt="Places to save the video's information" width="500" height="440" />

For the custom post type and custom fields, we use <a href="https://metabox.io/">Meta Box</a> and its extensions:
<ul>
 	<li><a href="https://wordpress.org/plugins/meta-box/">Meta Box core plugin</a>: This is the framework to create custom fields and custom post types. It’s free and available on <a href="https://wordpress.org/plugins/meta-box/">wordpress.org</a>;</li>
 	<li><a href="https://metabox.io/plugins/custom-post-type/">MB Custom Post Type &amp; Custom Taxonomies</a>: It’s a free extension of Meta Box to create custom post types;</li>
 	<li><a href="https://metabox.io/plugins/meta-box-builder/">Meta Box Builder</a>: This Meta Box premium extension provides a UI on the back end to easily create custom fields easily;</li>
</ul>
The last one is <a href="https://oxygenbuilder.com/">Oxygen</a>. You should use the 3.9 version or higher which has the native integration with Meta Box.
<h2>Step 1: Create a New Custom Post Type</h2>
Go to <strong>Meta Box</strong> &gt; <strong>Post Types</strong> &gt; <strong>New Post Type</strong> to create a new custom post type for videos.

<img class="aligncenter" src="https://i.imgur.com/Ddma0xi.png" alt="Create a new custom post type for videos" width="1000" height="576" />

In the settings of the post type, we have the <strong>Supports</strong> tab that provides some features to add to your post type. In this case, we will display the author’s information for this post, so I check the <strong>Author</strong> box here.

<img class="aligncenter" src="https://i.imgur.com/qSceLhJ.png" alt="In the settings of the post type, choose some features of the Supports tab to add them to the post type." width="1000" height="580" />
<h2>Step 2: Create Custom Fields</h2>
Move to <strong>Meta Box</strong> &gt; <strong>Custom Fields</strong> &gt; <strong>Add New</strong>.

As I said at the beginning, I’ll create only one custom field to save the video’s links. Normally, we use the URL field to save links. But if you use it, Oxygen will only display the link as text on the frontend. Then, we must take a few more steps to convert the link into the video preview.

Instead, Meta Box has the <strong>oEmbed</strong> fields that allow you to save the link and display it as the video preview on the frontend. Thus, in this tutorial, we choose the <strong>oEmbed</strong> for more convenience.

<img class="aligncenter" src="https://i.imgur.com/3Q52CkV.png" alt="Choose oEmbed fields that allow you to save the link and display it as the video preview on the frontend." width="1000" height="640" />

After creating the field, go to the <strong>Settings</strong> tab, set the <strong>Location</strong> as <strong>Post Type</strong>, and choose <strong>Video</strong> to apply the created field to this post type.

<img class="aligncenter" src="https://i.imgur.com/yh6aob5.png" alt="In the Settings tab, set the Location as the Video Post Type to apply the created field to this post type." width="1000" height="643" />

Then, in the <strong>Post Editor</strong>, you will see the newly created custom field.

<img class="aligncenter" src="https://i.imgur.com/FM7J0e6.png" alt="In the Post Editor, you will see the created custom field." width="1008" height="592" />

Since I added the <strong>Author</strong> feature in the <strong>Supports</strong> tab, we will have the <strong>Author</strong> section to choose the post’s author like this.

<img class="aligncenter" src="https://i.imgur.com/UkjEHH1.png" alt="As we added the Author feature in the Supports tab, we will have the Author section to choose the post’s author." width="1000" height="612" />

Let’s move on to the next steps.
<h2>Step 3: Create a Template with Oxygen</h2>
In Oxygen, create a new template and apply it to the wanted page. Then, edit the page with Oxygen.

First, set the preview as usual.

To get the title of the page automatically, add the <strong>Heading</strong> component, then click Insert <strong>Data</strong> &gt; <strong>Post</strong> &gt; <strong>Title</strong> to connect it with the title of the page.

<img class="aligncenter" src="https://i.imgur.com/gR1Xwe8.gif" alt="Get the title of the video gallery page automatically" width="1000" height="563" />

Then, add a <strong>Section</strong> component to display the video gallery.

<img class="aligncenter" src="https://i.imgur.com/ajscNU2.png" alt="Add a Section component to display the video gallery." width="1000" height="498" />

Inside the <strong>Section</strong> component, add a <strong>Repeater</strong> component and set a data source for it. Go to <strong>Query</strong> &gt; <strong>Custom</strong> &gt; <strong>Post Type</strong> and find the ID of the created post type.

<img class="aligncenter" src="https://i.imgur.com/MVf3BNJ.gif" alt="Inside the Section component, add a Repeater component and set a data source for it." width="1000" height="563" />

Add the <strong>Video</strong> component inside the <strong>Repeater</strong>. You will see the default video preview from Oxygen. Now, we need to change the URL of this component to the one in the custom fields.

<img class="aligncenter" src="https://i.imgur.com/7rgAiUf.png" alt="To get the wanted video preview, we need to change the URL in Dynamic tag." width="1000" height="459" />

Click the <strong>Data</strong> button. Then, in the <strong>Meta/Custom Field</strong> section, find the field’s ID that you saved the video’s link.

<img class="aligncenter" src="https://i.imgur.com/8SXcNPn.gif" alt="Get the wanted video preview step by step." width="1000" height="563" />

For other information about the video, such as the video’s title, description, and author, select the corresponding component as <strong>Text Link</strong>, <strong>Text</strong>, <strong>Image</strong>, etc. Then, use the <strong>Data</strong> tag in the same way to automatically get the data from the post.

After adding all the wanted components, you will see all the video’s information displayed like this.

<img class="aligncenter" src="https://i.imgur.com/cZ453jD.png" alt="After adding all the wanted components, you will see all the video’s information displayed." width="1000" height="547" />

For easy styling, you can add some <strong>div</strong> tags for each element or group them together and add classes for them.

After saving the template, you will see the video gallery on the page.

<img class="aligncenter" src="https://i.imgur.com/5py7iGN.png" alt="The video gallery on the page before styling." width="1000" height="560" />

Let’s style this page.
<h2>Step 4: Style the Page</h2>
Go back to the page editor with Oxygen.

Set the <strong>Preview Render</strong> of the <strong>Repeater</strong> to the <strong>Normal Mode</strong> to see all the posts.

<img class="aligncenter" src="https://i.imgur.com/XgHeXXp.png" alt="Set the Preview Render of the Repeater to the Normal Mode to see all the posts." width="1000" height="546" />

You can change the layout of the gallery in the settings of the <strong>Repeater</strong>, or choose each component and change its settings.

<img class="aligncenter" src="https://i.imgur.com/9cX1mYv.png" alt="Use some CSS codes to style the video gallery page." width="1000" height="504" />

If you want to style the page like the above, let’s use some CSS codes. All the code I’ve uploaded to <a href="https://github.com/wpmetabox/tutorials/blob/b0a9245ed4349053f1f25aa74bfbc87b6963bec3/create-a-video-grid-gallery/custom.css">Github</a>, so you can refer to it.
<pre>.oxy-stock-content-styles p {display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}
.author-infor {display: flex;flex-direction: row;align-items: flex-start !important ;padding: 10px 0;}

.author-infor img {border-radius: 50%;}

.author-infor a {color: #000;font-weight: 700;text-align: left !important;}
.author-name {
    display: inline-block;
    width: 100%;
}
.date {</pre>
Go to the video gallery page on the frontend, you’ll see the new look.

<img class="aligncenter" src="https://i.imgur.com/xg6ygqB.png" alt="The video gallery page have a new look after styling." width="1000" height="830" />
<h2>Last Words</h2>
It seems to be so easy to create a video gallery page with Meta Box and Oxygen, right? Let’s try it and share the result with us.

By the way, if you have any ideas for any other tutorials, feel free to leave a comment. Thank you for reading.