Processing and Grouping Multiple Elements with FOREACH Loops
WP All Import supports a FOREACH syntax that makes it easy to make adjustments to multiple elements from your file at the same time. This is useful when building custom HTML in the Content section or when preparing other data from your file for fields that require a specific format.
Example for How to Implement a FOREACH Loop in WP All Import.
Here's an example XML file that contains some image information. It is assumed the default (/element) was chosen as the XPath in Step 2.
<root>
<elements>
<element>
<id>1</id>
<images>
<img url='1-1.jpg'>My Caption</img>
<img url='1-2.jpg'>Another Caption</img>
<img url='1-3.jpg'>We will use these for alt text</img>
<img url='1-4.jpg'>More text</img>
</images>
</element>
</elements>
</root>
Here’s an example import template, where FOREACH is used to loop through each img element in the above XML.
[FOREACH({images/img})]
<img src="{@url}" alt="{.}" />
[ENDFOREACH]
Passing {images/img} to the FOREACH means we will loop through each element matching that XPath. To get this XPath, just drag one of the matching elements from the XML tree on the right to the post content box. You’ll get something like {images/img[1]}. Just remove the [1], and you’re good to go.
Inside the FOREACH loop, the XPath is relative. You can’t access “higher-level” elements inside the FOREACH loop. For example, you wouldn't be able to access the 'id' element from within the FOREACH loop.
{@url} will return the url attribute of the element you are looping through - '1-1.jpg', '1-2.jpg', etc.
{.} will return the value of the element you are looping through — in this case, each img: 'My Caption', 'Another Caption', etc.
{element_name} will return the value of the element_name for each child element of the element you are looping through.
Import Any CSV, XML, or Excel to WordPress
- Any theme or plugin
- Images & galleries
- Custom fields
- Categories & tags
- Woo, ACF, Meta Box, JetEngine
Related Docs
Provides details on how to run PHP functions in WP All Import.
Shows you how to map values using IF statements.
Provides details on how hooks, filters, and actions are used in our plugins.