Use object in template part

时间:2021-02-07 作者:Jop

我尝试在循环中使用模板部分。

<?php
foreach ($categories as $category) {
    get_template_part( \'temp-parts/loop/blcnr_loop\');
}
?>
在模板部分,我调用对象

<?php 
echo $category->name; 
?>
但这给了我一个错误;Trying to get property \'name\' of non-object"E;。有没有解决办法?

我试过这个

foreach ($categories as $category) {
        $categoryData = array(
            \'name\' => \'theName\'
        );
        get_template_part( \'temp-parts/loop/blcnr_loop\',  NULL, $categoryData);
}
在模板部分

echo $categoryData[\'name\'];`
但返回NULL

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

As of WordPress 5.5 通过将变量以数组形式传递给的第三个参数,可以将变量传递给模板部件get_template_part():

foreach ($categories as $category) {
    get_template_part( \'temp-parts/loop/blcnr_loop\', null, [ \'category\' => $category ] );
}
这些变量将填充$args 可从模板访问的变量:

echo $args[\'category\']->name; 

相关推荐

在Theme-editor.php中如何添加创建文件的方法

这是我目标的一个概念我想通过在文本字段中输入完整的文件名和扩展名,在当前打开的目录中创建文件,单击创建并使用AJAX进程运行file_put_contents() 方法我还没有尝试过任何编码方法,因为我甚至没有一个起点。经过18个小时的研究,我只找到了使用add_theme_page() 添加一个可以进行所有自定义编码的页面。虽然这是一个可靠的选项,但我希望将其全部保存在核心文件编辑器中。创建一个完整的文件编辑器,它可以完成与核心相同的任务,唯一的区别是一个文本字段,这简直是小题大做。在绝望中,我使用了a