¿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.