当前位置: 首页 > 知识库问答 >
问题:

如何在WordPress插件中为TWIG添加沙盒扩展?

谷光誉
2023-03-14

我想添加沙箱扩展来评估使用木材WordPress不受信任的代码(包括使用作曲家,但我在使用插件时得到相同的结果)。

以下(简化)代码会导致致命错误。

add_filter('timber/twig', function($twig){

    $filters = array_diff(array_keys($twig->getFilters()), ['function']);

    $policy = new \Twig\Sandbox\SecurityPolicy([], $filters, [], [], []);
    $twig->addExtension(new \Twig\Extension\SandboxExtension($policy, true));
    
    return $twig;
});

错误是:"致命错误:未捕获异常:无法注册扩展"沙盒",因为扩展已经初始化。"

如果应用的过滤器是木材/细枝或细枝应用过滤器,则没有区别。

这是不正确的地方添加此扩展?它似乎只在调用Timber::compile_string时执行。

我在PHP 7.3. x上使用最新版本的WordPress和木材

共有1个答案

张啸
2023-03-14

$twig-

 类似资料:
  • 我是新来的。尝试测试创建一个插件来组合我的js和ajax的模块。我做了以下操作: [不确定我是否需要在admin-ajax中添加任何内容.php。 > < li >在wp-content/pluging/test-plugin下创建了我的新插件 < li >创建了两个文件:test.js和test.js < li> test.php内容如下: /***插件名称:测试*/ test.js代码如下:

  • 问题内容: 问题摘要:如何修改下面的代码,以使不受信任的动态加载代码在安全沙箱中运行,而应用程序的其余部分不受限制?为什么URLClassLoader不能像它说的那样处理它? 编辑:更新以响应AniB。 编辑2:添加了更新的PluginSecurityManager。 我的应用程序具有一个插件机制,第三方可以提供一个JAR,该JAR包含实现特定接口的类。使用URLClassLoader,我可以加载

  • 我正在为wordpress开发一个插件。这个插件必须有一个插件设置管理部分,但也必须有一个自定义的前端与表单页面。 我是wordpress插件开发领域的新手,但我还没有找到这项任务的具体信息。 有没有办法从插件向前端添加页面,或者需要手动编辑当前模板并添加页面?

  • 我正在创建一个wordpress插件,让用户登录并上传文件,在后端管理员中,用户可以登录并设置权限等 这里是php文件生成前端现在im添加这个作为模板和创建前端的事情我想做的是把这个代码也在插件。。,是否有相关的钩子,但我没有找到合适的钩子。。。。

  • 问题内容: 我想为我的WordPress博客创建一个自定义页面,该页面将在其中执行我的PHP代码,同时保留整个网站CSS /主题/设计的一部分。 PHP代码将使用第三方API(因此我需要包含其他PHP文件)。 我该如何完成? 注意:我没有与WordPress API交互的特定需求- 除了包括某些其他PHP库之外,我还需要在WordPress页面中包含的PHP代码中没有其他依赖项。因此,显然,任何不

  • 在Timber中是这个功能 在那里你会得到像这样的东西 但WordPress中还有其他功能,比如 不能从post.get_the_permalink或post.get_permalink访问 null

  • 问题内容: 我有一个带有2个下拉框的Wordpress网站。当我在第一个下拉框中选择一个选项时,我希望第二个选项被PHP函数中的数据刷新。为此,我需要ajax。但是我正在努力将Ajax绑定到Wordpress中。 HTML看起来像这样: 现在,例如,当用户选择“销售”时,我希望第二个选择标签重新加载来自PHP数组的匹配价格。 PHP函数如下所示: 我将jQuery Ajax调用保存在单独的.js文

  • 我在尝试首次登录 Apple Chat Business Sandbox 时看到以下内容: 微调器在没有任何响应的情况下继续旋转... 这在Safari和Chrome浏览器中都有发生。 缺少了什么?