Jak musi mieć strukturę katalog wtyczki?

9

Dostaję podstawową koncepcję wtyczek. Przeczytałem artykuł w Kodeksie na temat pisania wtyczek

W tym artykule jest mowa o „głównym pliku wtyczki”.

W jaki sposób Wordpress określa „główny plik wtyczki”?

P1:
Czy posiadanie wtyczki ma następującą strukturę:

  • nazwa wtyczki /
  • nazwa wtyczki / mainfile.php
  • nazwa wtyczki / supportcode-1.php
  • nazwa wtyczki / supportcode-2.php
  • nazwa wtyczki / plik Readme.txt
  • itp..

?

Q2:
Jeśli tak, w jaki sposób wordpress określa, który plik php jest głównym plikiem wtyczki?


Widziałem rekomendacje, które mówią: „W ten sposób tworzę kod ”:

  • nazwa wtyczki /
  • nazwa wtyczki / mainfile.php
  • nazwa wtyczki / inc / Supportcode-1.php
  • nazwa wtyczki / inc / Supportcode-2.php
  • nazwa wtyczki / plik Readme.txt
  • itp..

P3:
Czy użycie podkatalogu (jak inc/w powyższym przykładzie) jest wymagane, gdy kod PHP obejmuje wiele modułów?

P4:
Czy to prawda, że ​​w głównym katalogu wtyczek powinien znajdować się maksymalnie JEDEN plik php?

Dzięki.

Cheeso
źródło
Z pewnością na twoje pierwsze pytanie „W jaki sposób WordPress określa główny plik PHP” odpowiedziano bezpośrednio w głównym przewodniku „Pisanie wtyczek” na nagłówkach plików
icc97

Odpowiedzi:

12

W jaki sposób Wordpress określa „główny plik wtyczki”?

Jest to plik we wtyczce, który zawiera komentarz nagłówka wtyczki

/**
 * Plugin Name: A fresh example
 * Plugin URI:  http://example.com
 * Description: Foo makes a bar
 * Version:     2012-06-14.1426
 * Author:      John Doe
 * Author URI:  http://example.com
 * TextDomain:  your_textdomain
 * License:     MIT
 * LicenseURI:  http://www.opensource.org/licenses/mit-license.php
 */

P1: Czy posiadanie wtyczki ma następującą strukturę:

Tak. Każda struktura katalogów (w zakresie obsługiwanym przez serwery) jest legalna.

Q2: Jeśli tak, w jaki sposób wordpress określa, który plik php jest głównym plikiem wtyczki?

Patrz wyżej ↑

P3: Czy użycie podkatalogu (np. Inc / w powyższym przykładzie) jest wymagane, gdy kod PHP obejmuje wiele modułów?

Wymaganie? Nie. Ładniej czytać: tak. Łatwiejsze w utrzymaniu: również tak.

P4: Czy to prawda, że ​​w głównym katalogu wtyczek powinien znajdować się maksymalnie JEDEN plik php?

Po prostu nie.

Podsumował

Sposób, w jaki organizujesz swoje pliki i katalogi całkowicie zależy od ciebie, twoich osobistych preferencji i nic więcej. Jeśli chcesz ułatwić sobie utrzymanie i umożliwić innym programistom przechodzenie przez kod, powinieneś użyć jakiegoś rodzaju organizacji plików / katalogów.

Przykłady

Osobiście dołączam .class.phpjako rozszerzenie, kiedy mam w nim klasę. Moje pliki nazywam też dokładnie tak, jak klasę. Powód jest prosty: mój „główny plik wtyczki” - który jest moją bootstrapklasą, zwykle dba o ładowanie wszystkich potrzebnych rzeczy.

// inside my PREFIX_bootstrap class:
public static $includes = array(
    'settings'          => false // Parent class - no need to hook
   ,'settings_extended' => true  // Extending class - hooks static init() on `init` hook
);

public function construct()
{
    // The prefix for every class in my plugin
    $prefix = 'my_class_prefix_';

    foreach ( $this->files as $handle => $hook )
    {
        require_once plugin_dir_path( __FILE__ )."{$handle}.class.php";

        if ( ! $hook )
            continue;

        $class = $prefix.$handle;
        class_exists( $class ) AND add_action( 'init', array( $class, 'init' ), 1 );
    }
}

Oznacza to, że moje klasy i pliki mają następujące nazwy:

  • settings.class.php I settings_extended.class.php
  • my_class_prefix_settings I my_class_prefix_settings_extended

Zajmuję się również podstawową organizacją katalogów, na przykład przechowywaniem wszystkich js/css/imgplików w katalogach o takich nazwach.

Niektóre osoby używają nazwanych folderów (w przypadku większych wtyczek) inc/includes/assets/extensions/lib/etc.. Polecam używać podfolderów tylko dla dużych wtyczek. Jeśli masz dodatkowe rzeczy, takie jak widżety itp., Możesz użyć dla nich określonych podfolderów.

Ostatnie słowo: nie, nic, co znalazłeś, nie jest prawdą , te (jak te, które ci pokazałem) są tylko zaleceniami.

kajzer
źródło
1
Dziękuję za tę odpowiedź. Tak więc komentarz nagłówka jest sposobem, w jaki wordpress znajduje „główny plik wtyczki”. Ładuje tylko ten jeden, prawda? I oczywiście wszelkie dodatkowe pliki php, które są wymagane lub zawarte przez ten plik. Poprawny? Wydaje mi się, że w kodeksie nie było to dla mnie jasne. Właśnie go przeczytałem i widzę, co teraz mówi. Chciałbym powiedzieć coś w stylu „Wordpress szuka jednego pliku w twoim zipie, który ma ten specjalny nagłówek; ignoruje inne pliki w zipie”. lub coś podobnego. w każdym razie dzięki.
Cheeso,
Tak, ładuje tylko określone pliki plus „główny” plik. Należy pamiętać, że istnieją haki, które mają części specyficzne dla strony, aby zapobiec ładowaniu wszystkiego na każde żądanie.
kaiser