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.php
jako 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ą bootstrap
klasą, 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/img
plikó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.