Jedną z rzeczy, które nigdy nie były dla mnie jasne (zwłaszcza, że nie przesłałem wtyczki do repozytorium), jest sposób generowania unikalnego „identyfikatora” (ślimaka) wtyczki (tj. Tej listy ).
- Czy jest to wybór dokonany przez autora w momencie składania SVN, czy przez moderatora?
- Czy to nazwa odkażonej wtyczki (tytuł)?
- Czy to
plugin_basename
jest - Czy jest to główny plik wtyczki (bez nazwy katalogu)?
- Coś innego?
Jestem ciekawy, które atrybuty wtyczki łączą go z odpowiednikiem SVN (jeśli taki posiada) dla interfejsu API aktualizacji wtyczek?
Proszę, częściowo z mojej natury, aby chcieć wiedzieć, ale także jak zapewnić (do pewnego stopnia), że moje własne jednorazowe wtyczki nie będą kolidować z jedną w SVN.
Na przykład, jeśli byłaby to tylko 3) , mogłabym użyć bardzo unikalnej nazwy katalogu, ale nazwa wtyczki (tytuł) powinna być krótka i słodka.
NB Chociaż wydaje się [my-plugin-name]/[my-plugin-name].php
, że jest to „standardowa” konwencja nazewnictwa plików , lubię [my-plugin-name]/plugin.php
.
Daje to spójność wszystkim moim wtyczkom, jasne jest, że jest to plik „bootloader” (główny), az drobnego punktu widzenia nienawidzę powtarzania nazwy katalogu.
To kolejny powód, dla którego zadaję to pytanie, ponieważ 4) mnie zawalił. Dodatkowo chciałbym usłyszeć twoje przemyślenia na temat tego „standardu” :)
źródło
Odpowiedzi:
Podczas przesyłania wtyczki ślimak staje się nazwą oczyszczonej wtyczki, zgodnie z przesłaniem. „Nazwa” wtyczki może się później zmienić, ale ślimak pozostanie taki sam na zawsze.
Kiedy WordPress musi sprawdzić dostępność wtyczki, pobiera wszystkie informacje nagłówka wtyczki i nazwę katalogu, w którym jest wtyczka, i wysyła ją do WordPress.org.
Obecnie stosuje się trzy czynniki, aby dopasować wtyczki do katalogu. Zauważ, że mówię „obecnie”, ponieważ zmienia się to tak często, jak próbujemy poprawić algorytmy dopasowywania.
Nazwa katalogu wtyczki jest często „ślimakiem” wtyczki. Przynajmniej tak jest, jeśli najpierw zainstalowałeś go z katalogu. Sprawdzamy więc ślimaka o tej nazwie katalogu. To nie jest świetny wskaźnik, ale pomaga.
Szukana jest również „Nazwa” w nagłówku wtyczki, ponieważ Nazwa musi być unikalna w katalogu wtyczek. Jeśli nie ma dopasowania do tej dokładnej nazwy, Nazwa jest dezynfekowana w celu wyprodukowania ślimaka, a my również szukamy tego ślimaka, na wszelki wypadek. To nie zawsze działa.
„Identyfikator URI wtyczki” w nagłówku jest również sprawdzany pod kątem zgodności. Ponieważ znamy tę wartość dla wszystkich wtyczek w katalogu, można to uznać za rozsądnie unikalne dla każdej wtyczki. W związku z tym zaleca się autorom wtyczek umieszczenie identyfikatora URI wtyczki, który wskazuje domenę, którą kontrolują, oraz adres URL unikalny dla wtyczki.
Wszystkie trzy z tych czynników są następnie ważone i zwracany jest najwyższy wynik. Wagi zastosowane dla każdej z trzech odzwierciedlają poziom ufności w zakresie dokładności danych. Na przykład, nazwa jest ważona wyżej niż katalog plugin-plug-as-slug, ponieważ większość autorów nie zmienia często nazw pluginów, a katalog pluginów może być dowolny, jeśli użytkownik zainstaluje go ręcznie, czy coś.
Im bliższe dopasowanie do tych trzech elementów, tym większe prawdopodobieństwo, że pasuje do wtyczki. Aby jednak wynik został zwrócony, należy znaleźć co najmniej jedno dokładne dopasowanie.
W przypadku niestandardowych jednorazowych wtyczek zwykle używam nazwy witryny w samej nazwie wtyczki. Pomaga mi to również w organizacji. Więc moją jednorazową nazwą wtyczki może być „ottopress.com - Napraw problem z czymkolwiek”. Jest mało prawdopodobne, aby jakakolwiek wtyczka w katalogu pasowała do Twojej domeny.
źródło
Ponieważ wpis SVN jest oczywiście tworzony przed pierwszym zatwierdzeniem wtyczki - jest on oparty na początkowym żądaniu wpisu. Nie wiem, czy proces jest techniczny czy ręczny, prawdopodobnie trochę z obu.
Do celów aktualizacji przesyłanych jest kilka informacji, a repozytorium próbuje ustalić dopasowanie - na podstawie nazwy wtyczki, nazwy katalogu, bieżącej wersji i prawdopodobnie innych. Nie wiem, czy kiedykolwiek opublikowano dokładny algorytm.
źródło