【问题标题】:PHP : Sum up the result of some "echo do_shortcode"PHP:总结一些“echo do_shortcode”的结果
【发布时间】:2016-05-08 00:28:10
【问题描述】:

我一直在搜索所有网站/网络以实现这一目标,但没有运气。我也根本不是开发人员,所以我能得到的少数信息也对我没有帮助。

情况:我有一些 Wordpress 插件,可以使用简码生成一些数字。例如,我有一个插件的 [shortcode1] 和另一个插件的 [shortcode2],它们每个都返回一个动态数字。

我在我的页面中使用 PHP,通过简单的“php echo do_shortcode('[shortcode1]');”来显示该数字,简码 2 也一样,效果很好。

我试图总结从这 2 个短代码返回的值。假设 shortcode1 = 10 和 shortcode2 = 20,我需要显示“30”。

我尝试将“do_shortcodes”发送到参数中,然后使用“sum”或使用“+”,但这些都不起作用,实际上这是有道理的,因为这样做时,我将短代码归因于这个参数,不是它的实际结果。知道这一点后,我尝试将“echo do_shortcode”应用于参数,以保存结果而不是实际的简码。但显然这样做是不正确的,或者我没有办法这样做。

我希望我能正确解释,知道如何实现这一目标吗? (希望有一个像 1+1=2 一样简单的答案 :))

提前致谢

【问题讨论】:

  • 你需要展示你的代码,做短代码和结果(html也可见)
  • 嗨大卫,我用来显示数字的代码:echo do_shortcode('[facebook-followers]');。结果它会返回一个数字,比如说 10。但明天它可能是 11、12、13……短代码返回的数字是动态的。
  • 实际数字无所谓,重要的是为什么不能添加它,我的意思是如果它返回一个数字,它就是一个数字,do_shortcode('[something]') + do_shortcode(' [something]') 应该给你一个号码。但是我们所能做的就是猜测您的短代码返回什么,它不会以这种方式得到解决!
  • 所以我尝试编写您给出的代码:do_shortcode('[something1]') + do_shortcode('[something2]'),它返回 1020(基本上是第一个:10,其次是第二个:20。它们没有被总结)。返回的 HTML 是相同的。我不确定这有什么帮助,否则我可能无法正确理解您所说的“返回”是什么意思。
  • 所以它被视为一个字符串。您需要将其转换为数字,但由于数字周围有 html 标签,因此它被视为字符串。了解如何在 chrome 或 firefox 中使用检查元素,这将向您展示实际输出的内容,您在屏幕上看到的是渲染数据,并且 html 标签不可见。 Return 表示从函数返回的数据。

标签: php wordpress sum echo shortcode


【解决方案1】:

您只能确保这样的数字,但在大多数情况下,do_shortcode() 是您想要做的事情的错误方法。以下在编程方面效率不高,但会做你想做的事。你可以只生成一个变量并使用它,但我想你有你的理由。总之……

$a = (int) preg_replace('/[^0-9]/','',do_shortcode('[whatever]'));
$b =  (int) preg_replace('/[^0-9]/','',do_shortcode('[whateverb]'));

$c= $a + $b;

echo $c;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2010-10-18
    • 2012-12-28
    • 2014-11-09
    • 2019-08-10
    • 2016-11-23
    • 1970-01-01
    相关资源
    最近更新 更多