将PHP保存在自定义WordPress选项字段中

时间:2015-08-26 作者:Kev

我创建了一个自定义管理页面,其中有一系列可用的选项字段。其中一个我用来输入一些HTML代码,我想知道是否也可以将php添加到该字段中,以便在模板中调用该选项时执行它?

谢谢你的指点。

2 个回复
SO网友:JHoffmann

原则上,如果您告诉模板评估字段的内容,这是很容易做到的。但这样做可能会在代码中引入许多安全问题。在大多数情况下,没有必要将php代码存储在db中,而且肯定有更好的方法来解决您的问题。

SO网友:TheGentleman

正如另一位海报所指出的,出于安全原因,这几乎总是一个坏主意。如果你坚持这样做,这就是方法。由于您使用的自定义字段可以同时包含php和html,因此最好使用短代码。类似这样的方法会奏效:

在保存函数的文件中:

function wpsc_do_php($atts, $content){
    /*Do some basic validation of the $content field 
     *to ensure that it is valid php code and that it
     *is only using functions that you allow.
     */

    return eval($content);
}
add_shortcode(\'php\',\'wpsc_do_php\');
在您的自定义字段中,无论您想在何处使用php,都可以将其封装在[php][/php] 而不是<?php...?>, 像这样:

<html>
    <p>Some html formated text with some php content like [php]date(\'Y-m-d\')[/php]</p>
</html>
然后在您的主题中(或任何您想显示自定义字段的地方),使用以下代码:

echo do_shortcode($my_custom_field_contents);
再说一次,虽然这应该行得通,但这是个坏主意。

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register