Bir eklenti dizini nasıl yapılandırılmalıdır?


9

Temel eklenti kavramını alıyorum. Eklenti Yazma ile ilgili Codex makalesini okudum

Bu makale "ana eklenti dosyası" hakkında konuşuyor.

Wordpress "ana eklenti dosyasını" nasıl belirler?

S1: Aşağıdaki
gibi yapılandırılmış bir eklentiye sahip olmak yasal / destekleniyor mu?

  • pluginname /
  • pluginname / mainfile.php
  • pluginname / supportingcode-1.php
  • pluginname / supportingcode-2.PHP
  • pluginname / Benioku.txt
  • vb..

?

S2:
Öyleyse, wordpress ana eklenti dosyasının hangi php dosyasının olduğunu nasıl belirler?


"Kodumu bu şekilde yapılandırıyorum" diyen öneriler gördüm :

  • pluginname /
  • pluginname / mainfile.php
  • pluginname / inc / supportingcode-1.php
  • pluginname / inc / supportingcode-2.PHP
  • pluginname / Benioku.txt
  • vb..

S3: PHP kodu birden çok modüle yayıldığında
bir alt dizinin kullanılması ( inc/yukarıdaki örnekte olduğu gibi) bir gereksinim midir?

S4:
Ana eklenti dizininde en fazla ONE php dosyası olması gerektiği doğru mu?

Teşekkürler.


Kesinlikle ilk sorunuz 'WordPress ana PHP dosyasını nasıl belirler?' Doğrudan dosya başlıklarında
icc97

Yanıtlar:


12

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.phpBir 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 bootstrapsı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/imgdizinlerde 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.


1
Bu cevap için teşekkürler. Dolayısıyla başlık yorumu wordpress'in "ana eklenti dosyasını" bulma biçimidir. Sadece onu yüklüyor, değil mi? Ve tabii ki bunun için gerekli veya dahil edilen diğer yardımcı php dosyaları. Doğru? Sanırım bana kodeksinde net değildi. Sadece tekrar okudum ve şimdi ne dediğini görüyorum. Keşke "Wordpress zip'inizde bu özel başlığa sahip bir dosyayı arar; zip içindeki diğer dosyaları yok sayar." veya bu çizgiler boyunca bir şey. neyse teşekkürler.
Cheeso

Evet, yalnızca belirttiğiniz dosyaları ve "ana" dosyayı yükler. Her istek üzerine her şeyin yüklenmesini önlemek için sayfaya özgü parçalara sahip kancalar olduğunu unutmayın.
kaiser
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.