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.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.