保存变量值树枝 ||木材

问题描述

我的 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