WordPress-在主题选项面板中执行PHP


WordPress - Executing PHP in Theme Options Panel

我为客户端创建了一个主题选项面板,但他们希望能够在文本区域输入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''=&gt; ” ) ); ?&gt;

首先,你必须防止WordPress在你的内容中添加斜杠,比如:

update_option('my_option',stripslashes($_POST['my_option']));

另一件事是,你希望你的代码被执行。。。我不知道该怎么做,但很多插件都提供了这种功能,比如

链接标题Html和Php小工具

你应该下载插件并弄清楚它是如何工作的。

现在只需从数据库中获取字段的内容,并尝试以某种方式对其进行解析。

在计算/显示代码之前,使用条带斜线取消对字符串的捕获。

您应该用'' 替换

您可以使用PHP 的此函数

PHP:eval();

您可以将textarea中的代码作为字符串保存到options中,并且无论何时您想要执行它,都可以从options中检索并将其传递给eval。

谢谢

-Sak

我个人使用Exec PHP。你的客户应该很容易使用它。