如何在短码中返回内部有变量的字符串?

时间:2017-09-12 作者:The WP Intermediate

$output = \'<p class="one"><small>\'.$newsletter_one. \'</small></p>\'
通常,当我们编写短代码时,我们会像上面那样发布HTML,并使用返回函数代替echo。

我们应该怎么写这个→

<span class="class2" id="class3-<?php echo $random;?>"> </span>
像这样→

$output = \'<span class="class2" id="class3-.$random."> </span>\'
还是这有一些缺陷?

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

如果要返回与字符串组合的数据,可以使用以下方法之一:

使用打开和关闭字符串\':

return \'<span class="class2" id="class3-\' . $random . \'"> </span>\';
或者使用双引号:

return "<span class=\'class2\' id=\'class3-{$random}\'> </span>";
您可以简单地使用$random 没有{} 花括号,但如果使用{}.

您甚至可以对内部字符串使用双引号,但需要对其进行转义:

return "<span class=\\"class2\\" id=\\"class3-{$random}\\"> </span>";
正如@birgire在评论中指出的那样,为了让它更具文字压力,我们还可以转义变量:

return sprintf( \'<span class="class2" id="class3-%s"></span>\', esc_attr( $random ) );

SO网友:Richard Bos

除了JackJohansson的回答(我想补充一点意见,但似乎我需要在这里呆更长的时间才能做到这一点,而不是发布我自己的答案!)我认为你甚至不需要内部双引号。AFAICT(我是一个相对较新的PHP程序员),您可以编写

return "<span class=\'class2\' id=\'class3-{$random}\'> </span>";
这也行得通。

结束

相关推荐

主题子PHP中的版权信息更改

下面是从中提取信息的文件。我尝试将/inc文件夹添加到子主题并添加模板标记。php已更改,但这不会产生任何影响。/wp内容/主题/hestia/inc/模板标签。php这是这里的原始代码…function hesta_bottom_footer_content( $is_callback = false ) { if ( ! $is_callback ) { ?> <div class=\"hestia-bottom-footer-con