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

时间:2017-12-22 01:32:20

标签: php html wordpress shortcode

我想在HTML编辑器中将PHP代码添加到短代码中。 我的短代码如下:

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

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

<?php the_title(); ?>

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

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

但不幸的是它没有用。如何成功将此PHP代码插入短代码?

3 个答案:

答案 0 :(得分:1)

使用类似

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

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

答案 1 :(得分:0)

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

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

1)如果它是一个简单的字符串,直接返回

2)如果它是与“ {{{}}}} ”类似的字符串,请使用eval函数将其作为php脚本运行然后返回。 / p>

答案 2 :(得分:0)

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

<?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}]"); ?>