如何使用嵌套的快捷码在父快捷码中呈现属性值

时间:2017-05-01 作者:Daveh0

我正在使用一个短代码在我的页面上呈现一个计数框。为此,我可以添加以下内容[ut_count_up to="1000"][/ut_count_up] 在该特定页面的编辑器中。只要我们计算的数字是静态的,那就好了。不幸的是,我需要根据一些访客数据动态调整这个数字。这个“访问者数据”收集在一个自定义的短代码中,该代码返回我想要统计的数字。我可以通过添加[visitor-data] 在编辑器中。当我想将该数字用作ut\\u count\\u up快捷码的“to”属性的值时,问题就来了。例如,我希望这能奏效:

[ut_count_up to=\'[visitor-data detail="population"]\'][/ut_count_up]
它实际上非常接近预期的效果,因为它确实成功地将自定义快捷码返回的数字设置为ut\\u count\\u up快捷码中“to”属性的值。。。页面将显示一个框,框中的数字计数达到该值。这里的问题是\'] 显示在页面上,正好在递增计数之后。看起来我的自定义短代码中的右括号关闭了父短代码,并且留下了尾随字符以在页面上显示。

将一个短代码生成的值作为给定属性的值传递给另一个短代码的正确方法是什么?

1 个回复
最合适的回答,由SO网友:Daveh0 整理而成

我决定修改自定义短代码,使其成为父短代码的包装。它现在不再返回值,而是返回调用(使用do_shortcode()) 动态设置其“to”属性的父对象。


OLD VERSION

...
$val = get_some_value();
return $val;


NEW VERSION

...
$val = get_some_value();
return do_shortcode("[ut_count_up to=\\"$val\\"]");

相关推荐

Namespaced shortcode?

我正在改造一个旧的WP站点,该站点有许多自定义的短代码,显然由于代码当前的组织方式,这些短代码在性能方面付出了代价。当然,我可以修复优化不好的代码,使用十几个短代码,并且一天就可以完成,但我想知道如何更好地组织它们。根据WordPress\'documentation, 建议将它们放在插件中并在上初始化init. 我们可以通过这样“命名”它们来减少这个钩子中的负载吗?[com.company shortcode attr=\"attr\" prop=\"prop\"] 有人尝试过这样的解决方案吗