-1

我有一系列 WordPress 主题定制器设置,我想注册并输出到主题定制器,它们都注册得很好,而且它们都工作得很好。

这就是我的问题所在,$wp_customize->add_setting 似乎不会通过主题检查器插件的检查,它似乎不喜欢使用变量代替设置的 ID,即使变量包含设置名称。当我遍历我拥有的数组时,主题定制器中的一切都正常(我正在注册的所有设置、控件、部分和面板都在那里,并且在预览窗口中工作和更新甚至刷新),但是在Theme Checker 插件,当测试运行时,我得到这个错误重复 100 次:

警告:preg_match():在第 110 行的 I:\xampp\htdocs\basic\wp-content\plugins\theme-check\checkbase.php 中找不到结束分隔符 '$'

导致问题的行是注册设置的行:

$wp_customize->add_setting($set_name, $items['setting']);

它所指的“结束分隔符”是针对 $set_name 的,但即使主题的功能运行良好,我也找不到在不出现这些错误的情况下传递它的方法。有没有某种方法可以让 add_setting() 方法获取包含我的设置名称的变量?

测试确实完成了,它表明这与问题有关:

必需:在 theme-customizer.php 中找到了一个名为 $set_name 的定制器设置,它没有清理回调函数。对 add_setting() 方法的每次调用都需要传递一个清理回调函数。

它似乎传递的是文字变量名称,而不是它的内容,但是,定制器按预期运行,并以我在设置数组中给出的正确名称注册/保存设置。

有人可以帮忙吗?

编辑:我在 $set_name 周围添加了双引号,它已经停止输出关于分隔符的 100 个错误,但我仍然遇到 REQUIRED 测试的问题,它没有通过,给出与以上。

4

1 回答 1

0

是的,我知道就函数/方法而言,字符串和包含字符串的变量之间没有区别。我将继续前进,假设这可能是 WP 团队的主题检查插件代码中的错误,并与他们联系。谢谢你的帮助,我认为这是我认为我们现在能得到的最接近的

于 2020-07-01T08:42:46.877 回答