Uma coisa que nunca ficou clara para mim (especialmente porque eu não enviei um plug-in para o repositório) é como o "ID" (slug) único de um plug-in é gerado (ou seja, esta lista ).
- É uma escolha do autor no momento da submissão do SVN ou de um moderador?
- É o nome do plug-in higienizado (título)?
- É o
plugin_basename
? - É o principal arquivo de plug-in (sem o nome do diretório)?
- Algo mais?
Estou curioso para saber quais atributos de um plug-in vinculá-lo ao seu equivalente SVN (se houver) para a API de atualização de plug-ins?
Eu pergunto, em parte fora da minha natureza, querer saber, mas também como garantir (até certo ponto) que meus próprios plug-ins únicos não colidam com um no SVN.
Por exemplo, se fosse apenas 3) , eu poderia usar um nome de diretório altamente exclusivo, mas manter o nome do meu plugin (título) curto e agradável.
NB Embora a convenção de nomeação de arquivos "padrão" pareça ser [my-plugin-name]/[my-plugin-name].php
, eu me apaixonei [my-plugin-name]/plugin.php
.
Ele dá consistência a todos os meus plugins, fica claro que é o arquivo "bootloader" (principal) e, do ponto de vista mesquinho, odeio a repetição do nome do diretório.
Essa é outra razão pela qual faço a pergunta, pois 4) me atrapalhava. Além disso, eu gostaria de ouvir seus pensamentos sobre esse "padrão" também :)
fonte
Respostas:
Ao enviar um plug-in, a lesma se torna o nome do plug-in higienizado, conforme enviado. O "Nome" do plug-in pode mudar depois disso, mas a lesma permanece a mesma para sempre.
Quando o WordPress precisa verificar uma atualização do plug-in, ele obtém todas as informações de cabeçalho do plug-in e o nome do diretório em que o plug-in está, e envia para o WordPress.org.
Atualmente, três fatores são usados para tentar fazer uma correspondência com os plug-ins no diretório. Observe que eu digo "atualmente", porque isso muda de vez em quando à medida que tentamos melhorar os algoritmos de correspondência.
O nome do diretório do plug-in é geralmente o "slug" do plug-in. Pelo menos, é se você o instalou a partir do diretório para começar. Portanto, verificamos uma lesma com esse nome de diretório. Este não é um ótimo indicador, mas ajuda.
O "Nome" no cabeçalho do plug-in também é pesquisado, pois o Nome deve ser exclusivo no diretório do plug-in. Se não houver correspondência com esse nome exato, o Nome será higienizado para produzir uma lesma, e também a procuraremos, apenas por precaução. Isso nem sempre funciona.
O "URI do plug-in" no cabeçalho também é verificado quanto a uma correspondência. Como conhecemos esse valor para todos os plugins no diretório, isso pode ser considerado razoavelmente exclusivo para cada plug-in. Portanto, é recomendável que os autores de plug-ins insiram um URI de plug-in que aponte para um domínio que eles controlam e uma URL que seja exclusiva para o plug-in.
Todos esses três fatores são ponderados e o resultado principal é retornado. Os pesos usados para cada um dos três refletem um nível de confiança na precisão dos dados. Por exemplo, Name pesa mais que o plugin-directory-as-slug, porque a maioria dos autores não altera os nomes dos plug-ins com muita frequência, e o plugin-directory pode realmente ser qualquer coisa se o usuário o instalou manualmente ou algo assim.
Quanto mais próxima a correspondência desses três itens, maior a probabilidade de corresponder ao plug-in. Mas pelo menos uma correspondência exata deve ser encontrada para que qualquer resultado seja retornado.
Para plug-ins únicos personalizados, costumo usar o nome do site no próprio nome do plug-in. Isso também me ajuda na organização. Portanto, meu nome único de plug-in pode ser "ottopress.com - Corrija o problema com o que for". É improvável que qualquer plug-in no diretório corresponda ao seu domínio.
fonte
Como a entrada SVN é obviamente criada antes de você confirmar seu plug-in pela primeira vez - ela se baseia na sua solicitação inicial de entrada. Não sei se o processo é técnico ou manual, provavelmente um pouco dos dois.
Para fins de atualização, várias informações são enviadas e o repositório tenta determinar a correspondência - com base no nome do plug-in, nome do diretório, versão atual e possivelmente mais. Não sei se algum algoritmo exato foi publicado.
fonte