Frage

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

War es hilfreich?

Lösung

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; 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top