PHP Kirby开发:如何在单个Snippet中传入并使用两个自定义变量
问题根因
你的代码中存在两个需要修正的点:
- Snippet内部调用
variable2时用单引号包裹,导致系统将其识别为固定字符串"variable2",而非你传入的变量值,过滤逻辑完全不生效 - 传参代码里
variable1的赋值末尾多了一个多余的双引号,可能引发输出异常
修正后的Snippet代码
<div class="container"> <h2><?= $variable1 ?></h2> <?php foreach (page('blogs') ->children() ->listed() ->filterBy('tags', $variable2, ',') // 去掉variable2的单引号,直接调用变量 ->flip() as $subpage) : snippet('blogkarte', ['subpage' => $subpage]); ?> <?php endforeach ?>
修正后的传参代码
<?php snippet('blogkarten', ['variable1' => 'MYTEXT', 'variable2' => 'MYTEXT']) ?>
验证逻辑
修改完成后即可实现预期效果:传入的variable1正常输出为页面标题,同时filterBy会按照variable2传入的标签值筛选对应博客子页面,渲染匹配的blogkarte卡片。
内容的提问来源于stack exchange,提问作者Constantin
相关产品推荐
相关产品推荐

