在使用Dedecms的过程中,可能会遇到标签 dede:global 下的 function 属性无法正常工作的问题。以下是对该问题的详细分析以及解决方法。

 

版本:v5.5

 

在实际操作中,我们发现:

使用以下代码可以正常获取到 keyword 的值:

{dede:global name='keyword' /}

 

然而,当我们尝试加入 function 属性时,keyword 的值却变成了空:

{dede:global name='keyword' function='str_replace(" ", "-", @me)' /}

 

经过深入研究,我们发现这是一个已知的 bug。以下是具体的解决方案:

 

解决方案:

找到文件 include/dedetag.class.php,定位到第 423 行:

原始代码如下:

$str = $this->EvalFunc( $this->CTags[$i]->TagValue, $this->CTags[$i]->GetAtt('function'),$this->CTags[$i] );

 

将其修改为:

$str = $this->EvalFunc( $str, $this->CTags[$i]->GetAtt('function'),$this->CTags[$i] );

 

完成以上修改后,保存文件并刷新页面,问题即可解决。

 

通过上述方法,我们可以确保 dede:global 标签在使用 function 属性时能够正确处理数据。这对于需要对全局变量进行自定义处理的场景非常有用。

 

希望这篇文章能帮助您更好地理解和解决 Dedecms 中的相关问题。如果您还有其他疑问,请随时查阅官方文档或社区资源。