如何将 php 代码插入 HTML 中的短代码?

Posted

技术标签:

【中文标题】如何将 php 代码插入 HTML 中的短代码?【英文标题】:How can I insert a php code into a shortcode in HTML? 【发布时间】:2018-06-04 17:09:44 【问题描述】:

我想在 html 编辑器中将 php 代码添加到短代码中。 我的简码如下所示:

<?php echo do_shortcode('[eapi keyword="KEYWORD" n=25]'); ?>

如果我只输入一个词而不是关键字,它就可以了。现在我想用这个 php 代码添加一个单独的标题:

<?php the_title(); ?>

所以我将它插入到这样的短代码中:

<?php echo do_shortcode('[eapi keyword="<?php the_title(); ?>
" n=25]'); ?>

但不幸的是,它不起作用。如何成功将此 php 代码插入短代码?

【问题讨论】:

我认为问题在于您以单引号开头,这使内容文字化并阻止您使用变量。您可能希望在其中的任何引号之前使用双引号,然后使用反斜杠。 你已经启动了php open tag和close tag,问题是你又启动了php open tag " n= 25]'); ?> 试试这个 【参考方案1】:

使用类似的东西

 <?php do_shortcode('[eapi keyword="' . get_the_title() . '"]'; ?>

你会想要 get_the_title 因为它会返回标题而不是直接输出它(就像 the_title 那样)。由于您已经处于 PHP 模式,因此您不需要任何额外的

【讨论】:

【参考方案2】:

这是一个可能的解决方案,但我不熟悉您在其中使用它的插件/上下文。但这也许会给您一些想法:

<?php echo do_shortcode("[eapi keyword=\"" . the_title() . "\" n=25]"); ?>

所以我删除了一个内部的 php 标签。我将外引号切换为双引号,因为您不能在单引号内使用函数/变量。同时,我连接了 title 函数,因为我认为它不能在引号内解释。这也可能否定双引号的需要,但习惯的力量。

编辑 - 为了清楚起见,原始问题之外的一些其他使用示例。

字符串中的变量需要双引号:

<?php echo do_shortcode("[eapi keyword='$variable' n=25]"); ?>

变量连接可以使用单引号或双引号:

<?php echo do_shortcode("[eapi keyword='" . $variable . "' n=25]"); ?>

关键字和函数必须串联:

<?php echo do_shortcode("[".KEYWORD." keyword='".func()."' n=25 x=$var]"); ?>

【讨论】:

如果我想添加类似插件的简码,如下所示: 我怎样才能像你上面那样实现它?我试过这个: .但它没有用:/ 对于上面的代码,你的开引号是单引号,闭引号是双引号 &lt;?php echo do_shortcode("[amazon bestseller=\'" . the_title() . "\' items='10']"); ?&gt; Jang Answer 完美 您好,非常感谢您的回复。不幸的是代码: 没用。我被问多了,我还能添加什么来完成这项工作。我尝试将“.title()”替换为“.get_the_title()”,但效果不佳 我认为我的理解不正确。你是在 get_the_title() 之后和下一个双引号之前加一个句点吗?【参考方案3】:

我认为您需要修改您的 eapi 插件以支持您的要求。

例如,您可以在您的eapi插件上制定规则来分析参数的关键字。

1) 如果是简单字符串,直接返回

2) 如果是类似“......”的字符串,使用eval函数将其作为php脚本运行,然后返回。

【讨论】:

以上是关于如何将 php 代码插入 HTML 中的短代码?的主要内容,如果未能解决你的问题,请参考以下文章

php PHP中的短代码

php 允许产品摘录中的短代码

php 允许产品摘录中的短代码

php 允许产品摘录中的短代码

PHP WordPress模板中的短代码

php 文本小部件中的短代码执行