I try to use a template part in my loop.
<?php
foreach ($categories as $category) {
get_template_part( 'temp-parts/loop/blcnr_loop');
}
?>
In the template part I call the object
<?php echo $category->name; ?>
But this gives me an error “Trying to get property ‘name’ of non-object“.
Is there a solution for this?
I tried this
foreach ($categories as $category) {
$categoryData = array(
'name' => 'theName'
);
get_template_part( 'temp-parts/loop/blcnr_loop', NULL, $categoryData);
}
And this in the template part
echo $categoryData['name'];`
But this returns NULL
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
As of WordPress 5.5 you can pass variables to template parts by passing them in an array to the third argument of get_template_part():
foreach ($categories as $category) {
get_template_part( 'temp-parts/loop/blcnr_loop', null, [ 'category' => $category ] );
}
These variables will populate an $args variable accessible from the the template:
echo $args['category']->name;
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0