插件SVN&UPDATE API-如何识别插件?

时间:2012-02-25 作者:TheDeadMedic

有一件事我从来都不清楚(尤其是因为我还没有向存储库提交插件),那就是插件的唯一“ID”(slug)是如何生成的(即。this list).

这是作者在提交SVN时的选择,还是版主的选择plugin_basename?我很好奇插件的哪个属性link it to it\'s SVN counterpart (如果有)插件更新API?

我问,部分是出于我想知道的天性,但也是为了确保(在某种程度上)我自己的一次性插件不会与SVN中的插件发生冲突。

例如,如果3), 我可以使用一个非常唯一的目录名,但我的插件名(title)要简短。

<小时>N.B. 虽然“标准”文件命名约定似乎是[my-plugin-name]/[my-plugin-name].php, 我喜欢上了[my-plugin-name]/plugin.php.

它使我所有的插件都有一定的一致性,很明显它是“引导加载程序”(main)文件,从一个微不足道的角度来看,我讨厌重复目录名。

这是我问这个问题的另一个原因,因为4) 会把我搞砸的。另外,我也想听听你对这个“标准”的看法:)

2 个回复
最合适的回答,由SO网友:Otto 整理而成

提交插件时,slug将成为已提交的经过清理的插件名称。插件的“名称”在此之后可以更改,但slug将永远保持不变。

当WordPress需要检查插件更新时,它会获取插件的所有标题信息和插件所在的目录名,并将其发送给WordPress。组织。

目前,有三个因素被用来与目录中的插件进行匹配。请注意,我说的是“当前”,因为当我们尝试改进匹配算法时,这种情况会经常发生变化。

插件目录名通常是插件的“slug”。至少,如果您从一开始的目录中安装它,情况就是这样。因此,我们检查是否有具有该目录名的slug。这不是一个很好的指标,但有帮助。

插件标题中的“名称”也会被搜索,因为名称在插件目录中必须是唯一的。如果这个确切的名字没有匹配,那么这个名字会被净化以产生一个鼻涕虫,我们也会搜索这个鼻涕虫,以防万一。这并不总是有效的。

也会检查标题中的“插件URI”是否匹配。因为我们知道目录中所有插件的值,所以可以认为每个插件的值都是唯一的。因此,插件作者最好输入一个插件URI,该URI指向他们控制的域,以及插件特有的URL。

然后对所有这三个因素进行加权,并返回顶部结果。三种方法中的每种方法所使用的权重都反映了数据准确性的置信水平。例如,名称作为slug的权重高于插件目录,因为大多数作者不会经常更改插件名称,如果用户手动安装插件目录,插件目录实际上可以是任何内容。

与这三项的匹配越接近,与插件匹配的可能性就越大。但要返回任何结果,必须至少找到其中一个精确匹配项。

对于定制的一次性插件,我倾向于在插件名称中使用站点名称。这对我的组织也有帮助。所以我的一次性插件名可能是“ottopress.com-修复任何问题”。目录中的插件不太可能与您的域匹配。

SO网友:Rarst

由于SVN条目显然是在您第一次提交插件之前创建的,因此它基于您最初的条目请求。我不知道这个过程是技术性的还是手工的,可能两者兼而有之。

出于更新目的,提交了大量信息,存储库会根据插件的名称、目录名、当前版本以及可能的更多信息来确定匹配项。我不知道精确算法是否发表过。

结束

相关推荐

Updates for a private plugin?

如果我写一个私有插件,有没有办法使用WordPress自动更新机制来更新它 我想封装这个功能,但它是我自己的5个博客特有的,所以它不是公共插件资源的好候选。但我喜欢这种简单的更新机制 有没有办法做到这一点