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
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
Share Improve this question edited Feb 7, 2021 at 23:46 Jop asked Feb 7, 2021 at 15:15 JopJop 1279 bronze badges 3 |1 Answer
Reset to default 1As 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;
var_dump( $categories );
is it an array of objects or just an array ofIDs/slugs/etc
. Comment outget_template_part()
and also try avar_dump( $category );
and make sure that it's an object. – Tony Djukic Commented Feb 7, 2021 at 15:46get_template_part
for it – Tom J Nowell ♦ Commented Feb 7, 2021 at 15:49