Wordpress "ana eklenti dosyasını" nasıl belirler?
Eklentinizdeki eklenti üstbilgisi yorumunu içeren dosyadır
/**
* 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
*/
S1: Aşağıdaki gibi yapılandırılmış bir eklentiye sahip olmak yasal / destekleniyor mu?
Evet. Her dizin yapısı (sunucular tarafından desteklendiği sürece) yasaldır.
S2: Öyleyse, wordpress ana eklenti dosyasının hangi php dosyasının olduğunu nasıl belirler?
Yukarıya bakınız ↑
S3: PHP kodu birden çok modüle yayıldığında bir alt dizinin kullanılması (yukarıdaki örnekte inc / gibi) bir gereksinim midir?
Gereği? Hayır. Okumak daha hoş: evet. Bakımı daha kolay: Ayrıca evet.
S4: Ana eklenti dizininde en fazla ONE php dosyası olması gerektiği doğru mu?
Hayır.
Özetlenmiş
Dosyalarınızı ve dizinlerinizi tamamen düzenleme şekliniz size, kişisel tercihlerinize ve başka hiçbir şeye bağlı değildir. Korumanızı kolaylaştırmak ve diğer geliştiricilerin kodunuzu gözden geçirmesini istiyorsanız, bir tür dosya / dizin organizasyonu kullanmalısınız.
Örnekler
.class.php
Bir ders aldığımda şahsen eklenti olarak ekliyorum . Ayrıca dosyalarımı tam sınıf gibi adlandırıyorum. Nedeni basit: "Ana eklenti dosyam" - ki bu benim bootstrap
sınıfım, normalde gerekli olan tüm şeyleri yüklemeyi önemsiyor.
// 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 );
}
}
Bu, sınıflarım ve dosyalarımın aşağıdaki gibi adlandırıldığı anlamına gelir:
settings.class.php
VE settings_extended.class.php
my_class_prefix_settings
VE my_class_prefix_settings_extended
Ayrıca, bu gibi js/css/img
dizinlerde tüm dosyaları saklamak gibi bazı temel dizin organizasyonu yapmak .
Bazı kişiler (daha büyük eklenti için) adlı klasörleri kullanır inc/includes/assets/extensions/lib/etc.
. Alt klasörleri yalnızca büyük eklentiler için kullanmanızı öneririm. Pencere öğeleri vb. Gibi ek öğeleriniz varsa, bunlar için belirli alt klasörler kullanabilirsiniz.
Son kelime: Hayır, bulduğunuz hiçbir şey doğru değil , bunlar (size gösterdiğim şeyler gibi) sadece öneriler.