这基本上是我想要完成的事情:
{exp:plugin1:method arg="{exp:plugin2:method}"}
我尝试了许多不同的方法。
方法一:
{exp:plugin1:method arg="{exp:plugin2:method}"}
结果: Plugin1->method
的arg
参数值是字符串{exp:plugin2:method}
,并且它从未被解析过。
方法二:
我对解析顺序的理解表明这可能会产生不同的结果,但显然没有。
{preload_replace:replaced="{exp:plugin2:method}"}
{exp:plugin1:method arg="{replaced}"}
结果:参数arg
值与方法 1 相同。
方法3:
首先我定义一个片段 ( snip
),其内容是:
{exp:plugin2:method}
然后在模板中:
{exp:plugin1:method arg="{snip}"}
结果:与方法 1 和 2 相同。
方法4:
注意到插件是按照它们出现的顺序处理的,我什至测试过在调用{exp:plugin2:method}
之前放置一个实例。{exp:plugin1:method}
我的想法是我可以将第一个调用包装在一个正则表达式替换插件中以抑制输出,但它会首先触发 Plugin2 的解析。
{exp:plugin2:method}
{exp:plugin1:method arg="{exp:plugin2:method}"}
结果: Plugin1->method
'参数值是Template 类保留到以后的 ' 输出(我相信是 MD5)arg
的临时哈希占位符。Plugin2->method