Domanda

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

È stato utile?

Soluzione

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; 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top