問題描述

有一點對我來説並不清楚 (特別是因為我沒有向存儲庫提交插件) 是如何生成插件的獨特”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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。