问题描述

有一点对我来说并不清楚 (特别是因为我没有向存储库提交插件) 是如何生成插件的独特”ID”(slug)(即 this list) 。

  1. 作者是 SVN 提交的一个选择,还是由主持人呢?

  2. 是否是消毒的插件名称 (标题)?

  3. plugin_basename 吗?

  4. 是主要的插件文件 (没有目录名称)?

  5. 还有什么?

我很好奇一个插件的哪个属性链接到它的 SVN 对应 (如果有的话) 插件更新 API?

我问,部分是出于我的性质想知道,而且如何确保 (在某种程度上),我自己的 one-off 插件不会与 SVN 中的一个冲突。

例如,如果只有 3),我可以使用一个非常独特的目录名称,但是保持我的插件名称 (标题) 很短。


注:虽然”standard” 文件命名约定似乎是 [my-plugin-name]/[my-plugin-name].php,我已经喜欢 [my-plugin-name]/plugin.php

它给我所有的插件一些一致性,很明显,它是”bootloader”(主) 文件,从一个小的立场,我讨厌重复的目录名称。

这是另一个原因,我问这个问题,因为 4) 会拧我。另外我也想听听你对这个”standard” 的想法:)

最佳解决方案

提交插件时,slug 将成为已提交的消毒插件名称。插件的”Name” 可以在此之后改变,但是这个插件永远保持不变。

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

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

  1. 插件目录名通常是插件的”slug” 。至少,如果你从目录安装它开始。所以我们检查一个带有该目录名称的小插件。这不是一个很好的指标,但它有帮助。

  2. 搜索插件头中的”Name” 也是如此,因为 Name 在插件目录中必须是唯一的。如果没有匹配的确切名称,那么名称将被清理,以产生一个 s lug 声,并且我们也搜索该 s 子,以防万一。这并不总是奏效

  3. 检查标题中的”Plugin URI” 是否匹配。由于我们知道目录中所有插件的值,所以每个插件都可以认为是合理的。因此,插件作者建议您放置一个指向其控制的域的插件 URI,以及插件所特有的 URL 。

然后对所有这三个因素进行加权,并返回最高结果。用于三个中的每一个的权重反映了数据的准确性的置信度。例如,Name 的权重高于 plugin-directory-as-slug,因为大多数作者不经常更改插件名称,如果用户手动或者某些东西安装,plugin-directory 实际上可以是任何东西。

比赛越接近这三个项目,就越有可能与插件相匹配。但是,对于要返回的任何结果,必须找到至少一个精确的匹配项。

对于自定义 one-off 插件,我倾向于在插件名称本身中使用站点名称。这也有助于我与组织。所以我的 one-off 插件名称可能是 「ottopress.com – 修复任何问题」 。目录中的任何插件都不适合与您的域匹配。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。