【问题标题】:Using PHP code snippet as a shortcode in Wordpress在 Wordpress 中使用 PHP 代码片段作为简码
【发布时间】:2016-06-04 01:48:37
【问题描述】:

我在 Wordpress 中使用插件 PHP Snippet。它工作正常,但代码包含一个错误,导致它无法正常工作。

我尝试应用的 PHP 代码如下:

$StartDate = strtotime('2016-05-10'); //Start date from which we begin count 
$CurDate = date("Y-m-d"); //Current date.
$NextDate = date("Y-m-d", strtotime("+2 week", $StartDate)); //Next date = +2 week from start date
while ($CurDate > $NextDate ) { 
    $NextDate = date("Y-m-d", strtotime("+2 week", strtotime($NextDate)));
}
echo date("Y-m-d", strtotime($NextDate)), "\n;

我需要使用“return”功能才能正常工作,但简单地将“echo”替换为“return”是行不通的......

你能帮忙吗?

【问题讨论】:

  • 起始{在哪里?我只能看到右括号}
  • 当您询问有关错误的问题时,总是发布错误日志。要向您的 php 代码启用错误报告,请在脚本顶部附加 error_reporting(E_ALL); ini_set('display_errors', '1');,它会返回什么?
  • @PedroLobito 我编辑了我认为它应该看起来的样子。 while 被评论夹住了……也许这就是问题所在?

标签: php wordpress


【解决方案1】:

这会返回编译器错误:

echo date("Y-m-d", strtotime($NextDate)), "\n;

试试这个:

echo date("Y-m-d", strtotime($NextDate)). "\n;
                                        ^

你在 php 中用点连接字符串。

【讨论】:

  • 我已经用点替换了逗号,但结果是一样的:我得到了正确的日期,但结果出现在页面顶部,而不是我所在的正确位置插入了简码(里面有 PHP)。据我所知,如果使用“return”函数(而不是“echo”),Wordpress 只允许代码出现在正确的位置......
  • 在你的代码中间还有一个'}',函数会停在那里并且return永远不会被调用
  • 您还缺少"\n 的结束双引号
猜你喜欢
  • 1970-01-01
  • 2018-07-13
  • 1970-01-01
  • 1970-01-01
  • 2017-08-25
  • 1970-01-01
  • 2014-06-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多