Czy wp-content / install.php to Drop-in?

9

Nie mogę znaleźć dokumentacji ani dyskusji na temat tego, co jest i jak korzystać z wtyczek Drop-in.
Pytanie to pojawiło się w tym pytaniu: „ Wypełnij zawartość podczas instalacji” .

Czy wp-content/install.phpplik, który na nowo definiuje funkcję wtykową, wp_install_defaultsjest wtyczką Drop-in, czy nie?

Moje wyniki badań

Poniższa lista pochodzi z artykułu hakre (który wydaje się być początkiem wszystkich innych kopii w interwebach) .

File                Type of Plugin                          Loaded                          Context
advanced-cache.php  Advanced caching plugin.                on WP_CACHE value               Single
db.php              Custom database class                   always                          Single
db-error.php        Custom database error message           on error                        Single
install.php         Custom install script                   on install                      Single
maintenance.php     Custom maintenance message              on maintenance                  Single
object-cache.php    External object cache                   always                          Single
sunrise.php         Executed before Multisite is loaded     on SUNRISE value                Multi
blog-deleted.php    Custom blog deleted message             on deleted blog                 Multi
blog-inactive.php   Custom blog inactive message            on inactive blog                Multi
blog-suspended.php  Custom blog suspended message           on archived or spammed blog     Multi

Source: Data taken from global function _get_dropins() in wp-admin/includes/plugin.php.

W Kodeksie Drop-in jest zdefiniowany jako :

Konkretny plik PHP


Na początku nie ma nic na liście [wp-hackers]. I szukając „drop-in + wordcamp” znalazłem tylko to, co istotne, mój nacisk :

Jedną z największych zalet WordPress jest system wtyczek. W nadchodzącym wydaniu 2.1 niewiele można zrobić jako wtyczkę typu drop-in . Ułatwia to korzystanie z WordPress jako CMS i oddzielenie dostosowań od głównej linii kodowej; co z kolei upraszcza aktualizacje i konserwację.

brasofilo
źródło
1
Czy to nie tylko semantyka? Nie będąc rodzimym językiem angielskim nie widzę domyślnego rozróżnienia między „wtyczką drop-in” a „wtyczką”
Mark Kaplun,
@MarkKaplun: Nie, nie, nie chodzi o semantykę. Pytanie dotyczy trzeciego zdania: Czy plik wp-content / install.php redefiniuje [...]
brasofilo
Nie rozumiem, po co jesteś. Wiesz, że już drop-iny to pliki ładowane jak wtyczki mu, tylko bez nagłówka wtyczki. Co jest otwarte?
fuxia
@ toscho, do rzeczy: Wyck powiedział, że wp-content/intall.phpto nie jest drop-in. Ufając jego wiedzy, pomyślałem, że potrzebne jest pytanie, aby to wyjaśnić. Jeśli nie, chętnie to usunę. Nie chcę tworzyć żadnego innego tematu polemicznego.
brasofilo,
To byłoby lepsze pytanie: czy install.phpwpadka?
fuxia

Odpowiedzi:

9

Aby odpowiedzieć na twoje pytanie, tak

W rzeczywistości istnieje wiele innych funkcji, które można zastąpić w tym pliku, jest on zawarty jako pierwszy wiersz „wp-admin / obejmuje / upgrade.php” i jest wiele funkcji, które można zastąpić

Niestety, nie ma zbyt wielu informacji na temat wtyczek wtyczek, ale postaram się podać kilka punktów

  1. Różnią się one od zwykłych wtyczek w tym sensie, że nie można ich spakować i zainstalować przez administratora Wordpress.
  2. Korzystanie z nich oznacza, że ​​właściciel ręcznie przesłał wtyczkę we właściwej lokalizacji. Zakłada się więc, że jest napisany i dodany przez samego właściciela.
  3. Te wtyczki mają tylko kod specyficzny dla konkretnej witryny wordpress.
  4. Ponieważ są dodawane przez właściciela, nie można ich kontrolować (aktywować / dezaktywować) z panelu administracyjnego. Instrukcja include jest zapisana na stałe w rdzeniu.
  5. Nie muszą mieć żadnych nagłówków plików.

Podsumowując, są to pliki php zakodowane na stałe (jeśli istnieją), za każdym razem, gdy Wordpress ładuje odpowiednią funkcjonalność.

Aby ich użyć, po prostu utwórz plik php o tej nazwie w katalogu „wp-content”, a zostanie on automatycznie dołączony. Plik ten może oczywiście zawierać dowolną liczbę innych plików w razie potrzeby.

EDYTOWAĆ

Jak wskazał toscho,
1) Drop-ins (jeśli są dostępne) są również wymienione w panelu administracyjnym wordpress wraz ze wszystkimi innymi wtyczkami. Chociaż w przeciwieństwie do innych wtyczek, nie masz kontroli, aby je dezaktywować.
2) Wordpress podczas aktualizacji (Core Core) nie zmienia katalogu „wp-content”. Z tego powodu wtyczki te nigdy nie zmieniają się między aktualizacjami.
3) Możesz zdefiniować stałą w wp-config.phpcelu zmiany katalogu „wp-content” na inny. Stała, którą musisz zdefiniować, to WP_CONTENT_DIR. Spowoduje to również zmianę wartości domyślnych dla innych stałych, takich jak katalog wtyczek, więc w razie potrzeby musisz się tym zająć

Mridul Aggarwal
źródło
2
Możesz dodać, że przetrwają aktualizację WordPress, są wymienione na stronie administratora wtyczki i możesz zdefiniować dodatkowe ścieżki dostępu wp-config.php.
fuxia
Ładne podsumowanie, Mridul. Właśnie przeszukałem rdzeń i tak, prawie tłumaczysz na angielski, co mówi kod.
brasofilo,
1

Jak wp-content/install.phpdziała;

Trwa proces instalacji WP wp-admin/install.php

Działa w linii 39 instalacji wp-admin/includes/upgrade.php

require_once( dirname( __FILE__ ) . '/includes/upgrade.php' );

Plik ten następnie sprawdza, czy najpierw został wygenerowany przez użytkownika plik install.php, a jeśli go nie znaleziono, uruchamia domyślną instalację zgodnie z tym kodem;

( file_exists(WP_CONTENT_DIR . '/install.php') )
    require (WP_CONTENT_DIR . '/install.php');
Wyck
źródło
W jaki sposób ten przepływ pracy wpływa na nasze install.phpbycie Drop-in, czy nie?
brasofilo,
Nadal jest to „wpadka”. Chciałem tylko wyróżnić to, mu-pluginco skomentowałem powyżej, przepraszam za zamieszanie, myślę, że Mridul Aggarwal ma rację.
Wyck,
Bez problemu, naprawdę się zdezorientowałem. Ale jeśli system nazywa Must-use jednego rodzaju, a Drop-in innego rodzaju, powinniśmy trzymać się konwencji. Na zdrowie :)
brasofilo,
Tak, konwencje nazewnictwa powinny być jaśniejsze, ale także większość ludzi nie wie o zwyczajuinstall.php
Wyck