¿Cómo DEBE estructurarse el directorio para un complemento?

9

Me sale el concepto básico del plugin. He leído el artículo del Codex en Escribiendo un complemento

Ese artículo habla sobre el "archivo principal del complemento".

¿Cómo determina Wordpress "el archivo del complemento principal"?

P1:
¿Es legal / es compatible tener un complemento que esté estructurado de esta manera?

  • nombre de plugin /
  • pluginame / mainfile.php
  • nombre_de_completo / supportcode-1.php
  • nombre_de_completo / supportcode-2.php
  • pluginname / Readme.txt
  • etc ...

?

P2:
Si es así, ¿cómo determina wordpress qué archivo php es el archivo principal del complemento?

He visto recomendaciones que dicen "estructuro mi código de esta manera ":

  • nombre de plugin /
  • pluginame / mainfile.php
  • nombre de plugin / inc / carryingcode-1.php
  • nombre de plugin / inc / carryingcode-2.php
  • pluginname / Readme.txt
  • etc ...

P3:
¿Es el uso de un subdirectorio (como inc/ en el ejemplo anterior) un requisito cuando el código PHP se extiende? multiples modulos?

P4:
¿Es cierto que debería haber un máximo de UN archivo php en el directorio principal de complementos?

Gracias.

    
pregunta Cheeso 19.06.2012 - 03:19

1 respuesta

12
  

¿Cómo determina Wordpress "el archivo del complemento principal"?

Es el archivo en su complemento que contiene el comentario del encabezado del complemento

/**
 * 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: ¿Es legal / compatible tener un complemento que esté estructurado de esta manera?

Sí. Cada estructura de directorio (en la medida en que sea compatible con los servidores) es legal.

  

P2: Si es así, ¿cómo determina wordpress qué archivo php es el archivo principal del complemento?

Ver arriba ↑

  

P3: ¿Es el uso de un subdirectorio (como inc / en el ejemplo anterior) un requisito cuando el código PHP abarca varios módulos?

Requisito? No. Mejor leerlo: sí. Más fácil de mantener: también sí.

  

P4: ¿Es cierto que debería haber un máximo de UN archivo php en el directorio principal de complementos?

No. Simplemente no.

Resumido

La forma en que organice sus archivos y directorios depende completamente de usted, sus preferencias personales y nada más. Si desea facilitar el mantenimiento y que otros desarrolladores realicen un paso a través del código, debe utilizar algún tipo de organización de archivos / directorios.

Ejemplos

Personalmente agrego .class.php como extensión, cuando tengo una clase en ella. También nombro mis archivos exactamente igual que la clase. El motivo es simple: mi "archivo principal de complementos", que es mi clase bootstrap , normalmente se preocupa por cargar todo lo necesario.

// 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 );
    }
}

Esto significa que mis clases y archivos se denominan así:

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

También hago una organización básica de directorios, como almacenar todos los archivos js/css/img en directorios llamados así.

Algunas personas usan (para un complemento más grande) carpetas que se llaman inc/includes/assets/extensions/lib/etc. . Recomiendo usar subcarpetas solo para complementos grandes. Si tiene elementos adicionales como widgets, etc., podría usar subcarpetas específicas para ellos.

Última palabra: No, nada de lo que has encontrado es verdadero , esas (como las cosas que te mostré) son solo recomendaciones.

    
respondido por el kaiser 19.06.2012 - 03:44

Lea otras preguntas en las etiquetas