我正在尝试用Wordpress创建一个基本的简短代码,它将允许我在页面上运行PHP。这就是我到目前为止所拥有的,但它不起作用。建议?
它的想法是它将是php插入PHP这里/php‘
<?php
function php_shortcode( $attr, $content = null ) {
return '<?php' . $content . '?>';
}
add_shortcode('php', 'php_shortcode');
?>
谢谢。
发布于 2018-07-04 03:21:18
很抱歉地说,你正在探索一个根本不会成功的概念。呈现短代码的PHP不能“同时”呈现自身的代码。
发布于 2018-07-04 03:50:33
短码作为标准将过滤PHP标签。但是,您可以将php直接写入内容编辑器。不需要告诉你为什么不推荐使用php,你可以像下面这样做,这样你就可以把php写进内容编辑器了:
// write '<?php ... ?>' into the editor
add_filter('the_content', 'allow_php', 9);
function allow_php($content) {
if (strpos($content, '<' . '?') !== false) {
ob_start();
eval('?' . '>' . $content);
$content = ob_get_clean();
}
return $content;
}
发布于 2018-07-05 11:16:48
经过一段时间的思考后,我意识到有一个显而易见的解决方案。所以,可能有人已经写了一个插件来做这件事,而且有人已经写了- https://wordpress.org/plugins/inline-php/。
它由大约40行PHP代码组成。关键的实现技巧是它不是作为一个短代码而是作为一个“the_content”过滤器来完成的。
add_filter('the_content', 'inline_php', 0);
这是在其他'the_content‘过滤器处理之前完成的,避免了我试图将其用作短码时遇到的所有问题。当然,仍然存在重大的安全风险。
https://stackoverflow.com/questions/51161553
复制相似问题