PIT Designs Logo

ACF Repeater Table in Oxygen Builder

I'm the owner and founder of PIT Designs. I love creating digital presence and creative digital solutions for our clients.


Posted 1 year ago on August 14th, 2019. Last modified on June 7th, 2020


Tags: | | |

How to create and style an HTML Table in Oxygen builder using dynamic data from ACF Repeater table.

With the recent updates of Oxygen bringing the Repeater fields to the builder. It's a great addition, which opens up to a lot of possibilities. One particular use that I needed for the Oxygen Repeater module (using ACF Repeater) is to output the results as a table.

The builtin Repeater in Oxygen builder doesn't allow for such manipulation at the moment. However, there's a workaround solution to get Oxygen builder output ACF Repeater table. Which you can style further with the magic of CSS.

Step 1: Starting ACF Repeater table

Create your custom repeater fields, in this example I'll create a simple [subject] [result] table. The method can be replicated to any number of columns.

Create a field group:

Label: Subject & Results

Field name: r_subject_&_results

Field type: Repeater

ACF Repeater table

Expand the Repeater field and add the nested fields. In this case will be:

Label: Subject with field name: r_subject.

Label: Result with field name: r_result

ACF Repeater to Table

Step 2: Using Oxygen Builder

Create the template, page, any other CPT you want to add the table to.

Insert the Code Module, and add below PHP code:

<!--
r_subject_&_results = ACF Repeater
r_subject = Field 1
r_result = Field 2
--><!-- repeater fields table output-->
<?php
$i = 0;
if( have_rows('r_subject_&_results') ): ?><table class="r-table"><tr><th>Subject</th><th>Result</th></tr><?php while( have_rows('r_subject_&_results') ): the_row(); $i++;$post = get_sub_field('r_subject');if( empty($post) )
{
continue;
}setup_postdata( $post );?><?php if( $i == 1 ): ?>

<tr>
<?php endif; ?>

<td><?php the_sub_field('r_subject'); ?></td>
<td><?php the_sub_field('r_result'); ?></td>

</tr>

<?php if( $i == 2 ): $i = 0; ?>

<?php endif; ?>

<?php endwhile; ?>

<?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?>

<?php endif; ?>
</table>

The above code will basically create a table based on the ACF repeater fields r_subject and r_result

Step 3. Applying CSS Styles to the Table

As you can see in the above code, the table is created and given a class of r-table


<table ID="r-table">

And just like an HTML Table it has < th > and < tr > that you can style further.

This is easily done with CSS. Here's a reference to CSS Tables styling on W3School.

if you have any question, feel free to write in the comments below.

Happy Oxygen-ing!






5/5


(2 Reviews)

Do we all agree that Coffee is the fuel that feeds the free content creating?
5 Benefits of Professional Commercial Cleaning Service

People spend a lot of their time at workplaces, which is why it is essential to keep the workplaces clean […]

5 Tips on Creating Marketing Videos on a Budget

Video marketing is the way forward. Businesses that are failing to leverage the power of video marketing are falling behind […]

Five Essential Law Firm Website Requirements

Five Essential Law Firm Website Requirements The best law firm website is one that lets you accomplish the key purpose […]

7 Copywriting Tips to Boost Website Conversions

In this article, we'll highlight the top seven copywriting tips to boost website conversions. Copywriting helps to persuade people to […]

15 Styles of a Company Website Landing Page

Landing pages are an integral part of a marketing strategy and help to move people through all the stages of […]

How to use WP All Import with Rank Math

Two of our favorite plugins are WP All Import and Rank Math. They're widely used on WordPress websites. Both make […]

6 Ultimate Content Marketing Writing Techniques to Boost Audience Rate

Are you seeking the best ways to improve your content creation? Are you excited to master your marketing development strategy? […]

Leave a Reply

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

chevron-downmenu-circlecross-circle