问题描述
我的 twig.PHP 文件和 Twig 类中有一个自定义木材函数 total_value。
class Twig {
public $totalvalue = 1;
public function add_timber_functions( $twig ) {
/* actions and filters */
$twig->addFunction(new Twig_Function('total_value',function ($value) {
$this->totalvalue += $value;
return ($this->totalvalue);
}));
}
}
我在 Twig 类中也有一个公共变量 public $totalvalue = 1;
如果我像这样从一个树枝模板调用函数{{ total_value('1') }},它应该返回2。 但是当我之后从另一个树枝模板调用它时,它仍然返回 2,但我希望它返回 3。
我对树枝和木材很陌生,我真的无法将头环绕
解决方法
我建议您主要选择 wp 缓存或瞬态。瞬态和缓存之间的区别在于瞬态是持久的并写入选项表,而缓存仅针对特定页面加载而持久。
正如评论中提到的,$_SESSION 是另一种存储跨多个页面使用的信息的方式,尽管这在不同的用户会话之间不是持久的。因此,根据功能要求,您需要相应地进行选择。
WP 缓存
$value = wp_cache_get( 'hello' );
wp_cache_set( 'hello','world' );
瞬态:
set_transient( 'box_color','Cherry Red',14400 );
$value = get_transient( 'box_color' );
Timber 也有一个辅助方法,see documenation。