我为客户创建了一个主题选项面板,但是他们希望能够在textareas中输入PHP代码并在前端执行它。
然而,当他们输入代码时,它在前端无法正常显示,请参阅以下两个屏幕截图:
看起来代码在前端显示时被剥离。它使用以下代码显示:
<?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\'=> ” ) ); ?>
答案 0 :(得分:5)
首先,您必须使用以下内容阻止WordPress为您的内容添加斜杠:
update_option('my_option',stripslashes($_POST['my_option']));
另一件事是你希望你的代码被执行......好吧我不知道怎么做到这一点,但是很多插件提供了这个功能,比如
Linkable Title Html and Php Widget
你应该下载插件并弄清楚它是如何工作的。
现在从数据库中获取该字段的内容,并尝试以某种方式解析它。
答案 1 :(得分:2)
在评估/显示代码之前,使用stripslashes来取消字符串。
答案 2 :(得分:0)
您应该将”
替换为''
答案 3 :(得分:0)
你可以使用PHP的这个功能
你可以把textarea中的代码保存到选项中作为字符串,每当你想执行它时,从选项中检索并将它传递给eval。
<强>感谢强>
<强> -Shak 强>
答案 4 :(得分:0)
我个人使用Exec-PHP。您的客户应该很容易使用。