我为客户端创建了一个主题选项面板,但他们希望能够在文本区域输入PHP代码,并在前端执行。
然而,当他们输入代码时,它没有在前端正确显示,请查看以下两个屏幕截图:
https://i.stack.imgur.com/Gm9Qv.png
https://i.stack.imgur.com/UXeVO.png
当代码显示在前端时,它看起来像是被剥离了。它使用以下代码显示:
<?php global $options;
foreach ($options as $value) {
if (get_settings( $value['id'] ) === FALSE) { $$value['id'] = $value['std']; } else { $$value['id'] = get_settings( $value['id'] ); }
}
?>
<?php echo $ag_footer_top; ?>
我怎样才能让它正常工作?有可能吗?
如果我在主题选项中输入以下内容:
<?php wp_nav_menu( array( 'theme_location' => 'first','fallback_cb'=> ” ) ); ?>
它被保存到数据库中为:
<?php wp_nav_menu( array( ''theme_location'' => ''first'',''fallback_cb''=> ” ) ); ?>
它在前端显示为:
''first'',''fallback_cb''=> ” ) ); ?>
首先,你必须防止WordPress在你的内容中添加斜杠,比如:
update_option('my_option',stripslashes($_POST['my_option']));
另一件事是,你希望你的代码被执行。。。我不知道该怎么做,但很多插件都提供了这种功能,比如
链接标题Html和Php小工具
你应该下载插件并弄清楚它是如何工作的。
现在只需从数据库中获取字段的内容,并尝试以某种方式对其进行解析。
在计算/显示代码之前,使用条带斜线取消对字符串的捕获。
您应该用''
替换”
您可以使用PHP 的此函数
PHP:eval();
您可以将textarea中的代码作为字符串保存到options中,并且无论何时您想要执行它,都可以从options中检索并将其传递给eval。
谢谢
-Sak
我个人使用Exec PHP。你的客户应该很容易使用它。