Someday you may want to showcase some products in a section on the homepage. So check out today’s practice, we're going to show the featured products using Meta Box and Elementor.
I’m getting restaurants as an example for the products and this is the section I’ll create in this tutorial:
Video Version
Before Getting Started
All of the featured restaurants in the section are chosen manually by a custom field in the backend. It’s a switch field. The restaurant will be displayed in the featured section when this button is turned on.
In this practice, I use Elementor and its pro version to build the homepage and the section. We also need Meta Box plugin to create the switch field. In addition, you may want to add some extra information about your product, so custom fields also come handy.
We also need some advanced features from Meta Box provided by some of its extensions. You can install them individually or use the Meta Box AIO for all.
- MB Custom Post Type: to create custom post type for the products;
- Meta Box Builder: to have a UI in the back end to create custom fields;
- MB Admin Columns (optional): to display the custom fields as an admin column to easily see the information. I use it to show you which restaurants will be featured to easily compare with the result;
- Meta Box - Elementor Integrator: to get dynamic data from custom fields and display them on the page easily.
Create a Custom Post Type
Go to Meta Box and create a new custom post type for your products.
After publishing, you will see your post type displayed as a menu.
Create Custom Fields
Go to Meta Box > Custom Fields to create fields to save extra information for the restaurants as usual.
I’ll create some custom fields for product information. You also can add other ones.
Besides some familiar fields, I use a switch field to choose to display the restaurant in the section or not. It’s based on the value of the field.
In the backend, to know if the restaurant is featured or not, just check the following box in the settings of the switch field. It's available only when you have MB Admin Columns.
After having all the fields, go to the Settings tab, choose Location as Post type, and Restaurant to apply the fields to it.
Then, when adding a new post, you’ll see the fields. If you want to feature the restaurant, just turn on the button.
I added some posts, for instance, you can easily see which one will be displayed in the section from the column.
Display Information of a Product
Go to Elementor and create a template to designate which and how the information from a post ò a product will be displayed.
Set the template as Loop Item.
Choose the post type to get the right preview.
Add a Section element.
Let's add information for each restaurant. First, insert Featured Image element to display the restaurant image.
Add Text Editor for the voucher.
Use the Dynamic Tags, look for the Meta Box Field option, and choose the field from the list.
Next, add the Post Title for the restaurant name.
Add an additional Text Editor element. It’s for the address which also is saved in a custom field.
We should use the Dynamic Tags as well, and find the Address field.
For the logo, add an Image element.
Then, add Dynamic Tags from the logo field to display the image.
That's all of the information I want to get and display for the restaurant.
Create a Custom Query
We need a condition based on the value of the Switch field to choose which posts will be displayed. As a result, we need a Custom Query when creating the section of the homepage. Elementor does not support it in the builder, so you should use a little bit of code to create one. It’s really easy with the official format provided by Elementor, so just follow it without concern.
You can add code directly to the theme file, but it’s not recommended. I’ll use a third party plugin which is Code Snippets. You can install it directly from wordpress.org.
To create a custom query, go to Code Snippets to add new one.
Add some code to set the condition.
/** * Update the query to use specific post types. * * @since 1.0.0 * @param \WP_Query $query The WordPress query instance. */ function my_query_by_post_types( $query ) { $query->set( 'post_type', [ 'restaurant' ] ); } add_action( 'elementor/query/my_custom_filter', 'my_query_by_post_types' ); /** * Update the query by specific post meta. * * @since 1.0.0 * @param \WP_Query $query The WordPress query instance. */ function my_query_by_post_meta( $query ) { // Get current meta Query $meta_query = $query->get( 'meta_query' ); // If there is no meta query when this filter runs, it should be initialized as an empty array. if ( ! $meta_query ) { $meta_query = []; } // Append our meta query $meta_query[] = [ 'key' => 'feature_the_restaurant', 'value'=>1, 'compare' => '=' ]; $query->set( 'meta_query', $meta_query ); } add_action( 'elementor/query/my_custom_filter', 'my_query_by_post_meta' );
Let’s get through for more detail.
function my_query_by_post_types( $query ) { $query->set( 'post_type', [ 'restaurant' ] ); } add_action( 'elementor/query/my_custom_filter', 'my_query_by_post_types' );
These lines of code are to declare that we’ll query the post type which has the ID as 'restaurant'
.
my_custom_filter
is the name of the custom query, you can name it as your own.
$meta_query[] = [ 'key' => 'feature_the_restaurant', 'value'=>1, 'compare' => '=' ];
This is the mentioned condition. It means that if the custom field, which has the ID as 'feature_the_restaurant'
, has the value as 1, the post will be got and displayed. 1
is the value of its On status.
Now, move on to display posts on the homepage.
Create the Section
Go to edit the homepage with Elementor.
Add a Section element to the page as usual.
Then, insert a Heading for it.
Add the Loop Grid element to get posts.
Choose the created template, but some blog posts will be displayed in the form.
To display the wanted posts from your product post type, go to the Query section. Set the Source as your product’s post type. Then all the posts from that post type will be displayed.
Fill in the Query ID box with the name of the created custom query to apply the condition that we want. The displaying posts will be changed.
To style the way each information of the post displays, go back to edit the created template as the Loop Item and customize each element’s settings.
Then the section will display with a nice look on the frontend.
Final Words
Using Meta Box and Elementor makes it easy to display featured products on the homepage. If you are interested in this topic, follow us and wait for our upcoming tutorials. Feel free to leave with some comments or suggestions. Thanks!
- How to Show Featured Restaurants on Homepage - P1 - Meta Box + Elementor + WP Grid Builder
- How to Show the Featured Restaurants Section - P2 - Using Meta Box and Bricks
- How to Show the Featured Restaurants - P3 - using Meta Box and Oxygen
- How to Show the Featured Restaurants - P4 - Using MB Views
- How to Show the Featured Restaurants - P5 - Using Meta Box and Elementor
- How to Show the Featured Restaurants - P6 - Using Meta Box and Zion
Other case studies you might be interested in
- Create A Dynamic Landing Page in WordPress Using Custom Field
- Create a Filter to Find Hotels by Location
- Create an OTA Website Like Booking.com with Meta Box Plugin - P1: Create a Page to Introduce Hotel Rooms
- Create an OTA Website Like Booking.com with Meta Box Plugin - P2: Create Filters on the Archive Page
- Create an OTA Website Like Booking.com with Meta Box Plugin - P3: Create Filters for Single Hotel Pages
- Create Dynamic Favicon in WordPress using Meta Box plugin
- Create Posts Series in WordPress Using Meta Box
- Display a User List On the Frontend with Meta Box
- Display The Latest Products Section - P2 - Using Meta Box and Elementor
- Display The Latest Products Section - P3 - Using Meta Box And Oxygen
- How to Add Custom Fields to Display Banners using Meta Box Plugin
- How to Add Guest Authors and Guest Posts - Using Meta Box
- How to Add Related Posts to WordPress Using Meta Box
- How to Build a Hotel Booking Website Using Meta Box - P1
- How to Build a Hotel Booking Website Using Meta Box - P2 - Booking Page in Backend
- How to Build a Hotel Booking Website Using Meta Box - P4 - Booking Management Page
- How to Build a Hotel Booking Website Using Meta Box – P3 – Booking Page for Customer
- How to Create a Classified Ads Website using Meta Box
- How to create a FAQs page - P5 - Using Meta Box and Breakdance
- How to Create a Product Page - P2 - Using Meta Box and Oxygen
- How to Create a Product Page - P3 - Using Meta Box and Bricks
- How to Create a Product Page - P4 - Using Meta Box and Elementor
- How to Create a Product Page - P5 - Using Meta Box and Gutenberg
- How to Create a Product Page - P6 -Using Meta Box and Breakdance
- How to Create a Product Page - P7 - Using Meta Box + Kadence
- How to Create a Product Page - P8 - Using Meta Box and Brizy
- How to Create a Product Page using Meta Box Plugin
- How to Create a Recipe - P2 - Using Meta Box and Oxygen
- How to Create a Recipe - P3 - Using Meta Box and Elementor
- How to Create a Recipe - P4 - Using Meta Box and Bricks
- How to Create a Recipe - P5 - Using Meta Box and Zion
- How to Create a Recipe - P6 - Using Meta Box and Brizy
- How to Create a Recipe - P7 - Using Meta Box and Breakdance
- How to Create a Recipe with Meta Box Plugin
- How to Create a Simple Listing - P2 - Using Meta Box and Bricks
- How to Create a Team Members Page - P1- Using Meta Box and Elementor
- How to Create a Team Members Page - P2 - Using Meta Box and Oxygen
- How to Create a Team Members Page - P3 - Using Meta Box and Bricks
- How to Create a Team Members Page - P4 - Just Meta Box
- How to Create a Team Members Page - P6 - using Meta Box and Breakdance
- How to Create a Video Gallery Page - P2 - Using Meta Box + Bricks
- How to Create a Video Gallery Page - P3 - Using Meta Box and Breakdance
- How to Create a Video Gallery Page - P4 - Using Meta Box + Elementor
- How to Create a Video Gallery Page - P5 - Using MB Views
- How to Create a Video Gallery Page Using Meta Box + Oxygen
- How to Create ACF Flexible Content Field with Meta Box
- How to Create an Auto-Updated Cheat Sheet in WordPress
- How to Create an FAQs Page - P1 - Using Meta Box and Elementor
- How to create an FAQs page - P2 - Using Meta Box and Oxygen
- How to create an FAQs page - P4 - Using Meta Box and Bricks
- How to Create an FAQs Page -P3- Using Meta Box
- How to Create Buttons with Dynamic Link using Custom Fields
- How to Create Category Thumbnails & Featured Images Using Custom Fields
- How to Create Download and Preview Buttons - P1 - Using Meta Box and Bricks
- How to Create Download and Preview Buttons - P2 - Using Meta Box and Oxygen
- How to Create Download Buttons Using Custom Fields with Meta Box Plugin
- How to Create Menus for Restaurants - P1 - Using Meta Box and Elementor
- How to Create Menus for Restaurants - P2- Using Meta Box and Bricks
- How to Create Online Admission Form for School or University
- How to Create Online Reservation Form for Restaurants using Meta Box
- How to Create Relationships - P1 - Using Meta Box and Oxygen
- How to Create Relationships - P2 - Using Meta Box and Bricks
- How to Create Relationships - P3 - Using MB Views
- How to Create Taxonomy Thumbnails & Featured Images - P2 - Using Meta Box and Oxygen
- How to Display Images from Cloneable Fields - P1 - with Gutenberg
- How to Display Images from Cloneable Fields - P2 - with Oxygen
- How to Display Images from Cloneable Fields - P3 - with Elementor
- How to Display Images from Cloneable Fields - P4 - with Bricks
- How to Display Opening Hours for Restaurants - P1 - Using Meta Box + Gutenberg
- How to Display Opening Hours for Restaurants - P2 - Using Meta Box and Oxygen
- How to Display Product Variations - P1 - Using Meta Box and Gutenberg
- How to Display Product Variations - P2 - Using Meta Box and Oxygen
- How to Display Product Variations - P3 - Using Meta Box and Bricks
- How to Display The Latest Products - P5 - Using Meta Box and Bricks
- How to Display the Latest Products - P6 - using Meta Box and Breakdance
- How to Display the Latest Products - P7 - Using Meta Box + Kadence
- How to Display the Latest Products Section - P4 - Using Meta Box + Zion
- How to Display the Most Viewed Posts - P1 - using MB Views
- How to Display the Most Viewed Posts - P2 - using Meta Box and Oxygen
- How to Display the Most Viewed Posts - P3 - Using Meta Box and Bricks
- How to Filter Posts by Custom Fields - P2 - using Meta Box and FacetWP
- How to Manually Reorder Posts with Meta Box
- How to Show Featured Restaurants on Homepage - P1 - Meta Box + Elementor + WP Grid Builder
- How to Show Posts With a Specific Criteria - P3 - Using MB Views
- How to Show Posts with Specific Criteria - P1 - Using Meta Box and Bricks
- How to Show Posts with Specific Criteria - P2 - Using Meta Box and Oxygen
- How to Show Posts with Specific Criteria - P4 - Using Meta Box + Breakdance
- How to Show Posts with Specific Criteria - P5 - Using Meta Box and Elementor
- How to Show the Featured Restaurants - P3 - using Meta Box and Oxygen
- How to Show the Featured Restaurants - P4 - Using MB Views
- How to Show the Featured Restaurants - P5 - Using Meta Box and Elementor
- How to Show the Featured Restaurants - P6 - Using Meta Box and Zion
- How to Show the Featured Restaurants Section - P2 - Using Meta Box and Bricks
- How to Use Custom HTML Field to Output Beautiful Texts or Output Custom CSS