您使用哪些主题来测试与您的插件的兼容性

时间:2012-08-29 作者:onokazu

在开发插件时,我通常在公开发布之前使用以下主题对其进行测试:

JustinTadlock的Buttercream捕获主题萨约坦·辛哈(SayontanSinha)的Suffusion团队是否还有其他建议,您应该测试插件以检查兼容性?

2 个回复
SO网友:kaiser

主题,有人吗

我不针对«或«主题测试»。只需使用其他一些可能会发生冲突的插件(但我通常会在发生什么事情之前保持打开状态-你永远不会弄清楚所有的边缘情况)。

至少,您正在通过过滤器拦截/扩展/更改内容。那么,为什么要在修改时针对主题进行测试呢core functions?

如果你正在拦截the_content 例如,过滤器,那么为什么要查看主题呢?如果他们优先加入99999999, 那么你无论如何都太迟了,他们在另一个版本中更改它的可能性太大了,你无论如何都无法遵循。

想象一下,您会检查每个过滤器,例如all-钩子-跳起来,移动你的优先顺序,直到你不可能错过它,然后你会让系统屈服。这是可能的。但它在现实生活中不起作用。

调试

WordPress, 也as PHP 船上有一堆错误处理的东西。这意味着everything 如果出现故障,则将输出-只要它处于打开状态。无论如何都要在本地副本中这样做。。。和abort in live code!

转储输出我最好的建议是简单地为自己构建一个非常整洁、简单的调试环境。当我编写类时,通常会将调试输出添加到任何包含的方法中。这样我就可以看到发生了什么以及什么时候发生了。

我为什么要这样做?

简单:错误将在某个步骤发生。因此,通常您会开始添加停止点,查看输出/返回的数据,然后向前一步,直到捕捉到错误。我只是通过一个简单的开关让我的生活变得更轻松,它允许我输出这个分步数据:每次在关机挂钩的元框中有一个选项卡。如果结果不是我所期望的,那么错误/错误的代码就发生在这之前。

检查输出/返回

debug output

这让我可以在任何事情失败的时候加入进来。它还允许我复制error prown安装,并查看发生了什么,而无需任何额外的努力。

检查挂钩另一件我经常用的东西var_dump( $GLOBALS[\'wp_filter\'][ current_filter() ]; 看看还有什么附加到挂钩上,我现在正在跳的地方。

当你看到我是如何做到这一点的时候,永远不要在实时安装中输出错误with the »Dynamic image resize« plugin - 一个更好的插件TimThumb(替换)-然后您将看到我如何避免输出

没有适当权限的用户所有者无意中忘记关闭调试工具,您可以从上面的评论中看到:我假设没有人在使用缓存插件时打开调试工具。在这种情况下:没有人能够提供帮助。

结论至少它是开源的。如果有really some caveman who does it... 如果事情失败了,那不是你的错。您无法捕获任何边缘案例。:)

最后一句话,我为什么不测试一下丢失的挂钩等。?

»Theme development standards«valid theme 应该遵循。如果他们没有,那么他们根本不在我的雷达上。想象一下,我会给一张便条,比如。_doing_it_wrong() 每种情况下都会有失败。这将使我的代码膨胀到原始大小的10倍左右,而无法捕获可能写错的所有内容。

现在想象一下,有人有一个非常糟糕的主题,我会用一个插件向她/他发送10条消息。如果我们都关心这个会发生什么?1000条消息?

SO网友:Daniel Chatfield

I测试:

Buttercream是一个Genesis主题,是一个Wootheme主题,我已经制作了一些定制主题(并将在某个阶段发布),目的是通过错误的方式测试插件。我测试的一些东西是因为存在太多糟糕的主题作者:

将jQuery版本从捆绑的版本更改为管理面板中的旧版本,在插件页面的标题后自动插入可笑的大横幅-是的,我正在查看您的JetPack流行的缓存插件(他们喜欢把事情搞砸)

EDIT: 哦,还有提供该网站移动版的插件。

结束

相关推荐

Wordpress Child Themes

我试图在wordpress子主题中重新声明父主题已经在使用的函数。但是,在尝试执行此操作时,我收到一条“致命错误:无法重新声明”消息。此外,我尝试使用以下方法,但没有成功:if (!function_exists(\'jr_load_scripts\')) { // do fancy things here... } 这是the link 如果您想快速查看。。。EDIT: 以下是完整代码:if (!function_exists(\'jr_load_scripts\')) {