如何在Wordpress中将不同变量传递到同一模板中

时间:2018-06-21 05:48:18

标签: php wordpress templates

我有侧边栏,在这里我需要以相同的设计打印不同的信息。我为此创建了模板文件。但是我不知道如何将不同的变量传递给它。

sidebar.php

$related_programs = get_field('related_programs');

if($related_programs): 
    include(locate_template('template_parts/content-related-list.php'));  
endif; 


// the another var should go to the same template
$related_professors = get_field('related_professors');

if($related_professors):
    include(locate_template('template_parts/content-related-list.php')); 
endif; 

template_parts / content-related-list.php

<ul>
    <?php foreach($items as $item):?>
        <li>
            <a href="<?php echo get_the_permalink($item); ?>"><?php echo get_the_title($item); ?></a>
        </li>
    <?php  
           endforeach; 
           wp_reset_postdata(); 
    ?>
</ul>

如何将这两个不同的变量传递到同一模板,以使它们每次都被称为$ items?

2 个答案:

答案 0 :(得分:0)

您应该在 sidebar.php

中使用单if语句,而不要使用double if语句
<?php  
$related_programs = get_field('related_programs');
$related_professors = get_field('related_professors');

if(isset($related_programs) || isset($related_professors)):
    include(locate_template('template_parts/content-related-list.php'));  
endif; 
?>

您应该使用关联数组将信息传递到相同的变量$items

$dummy_array = array(
    'related_programs'      => get_field('related_programs'),
    'related_professors'    => get_field('related_professors');
);

因此,您可以将$items['related_programs']$items['related_professors']放入模板。

答案 1 :(得分:0)

if($related_programs):
    set_query_var( 'items', $related_programs );
    get_template_part( 'template_parts/content', 'related-list' );
endif;

if($related_professors):
    set_query_var( 'items', $related_professors );
    get_template_part( 'template_parts/content', 'related-list' );
endif;