En muchos temas que he visto (incluido TwentyEleven) y en los ejemplos que he encontrado en línea, al crear el archivo functions.php
para un tema, toda la funcionalidad se declara en un ámbito global. Para aclarar, este es el aspecto de un archivo de funciones típico:
function my_theme_do_foo() { // ... }
function my_theme_do_bar() { // ... }
add_action( 'foo_hook', 'my_theme_do_foo' );
Me parece que las cosas podrían "encapsularse" un poco mejor si se usara una clase:
class MyTheme {
function do_foo() { // ... }
function do_bar() { // ... }
}
$my_theme = new MyTheme();
add_action( 'foo_hook', array( &$my_theme, 'do_foo' ) );
Las ventajas del segundo enfoque (en mis ojos humildes):
- Nombres de funciones más cortos
- Acceso a las variables de instancia (la mayor ventaja IMO)
- No hay funciones globales
Las desventajas:
- El nombre de clase todavía podría causar conflictos
- No está tan claro como para "personalizarlo" con un tema secundario (tendría que extender una clase primaria)
- La mayoría de los temas no lo han hecho de esta manera, por lo que estarías rompiendo con la tendencia
Probablemente estoy pasando por alto algunas cosas, pero me pregunto ¿por qué no tomar el enfoque OOP? Se siente un poco "más limpio" para mí, en todo caso. Tal vez estoy equivocado?
Soy bastante nuevo en el desarrollo de temas de WordPress, así que perdóneme si esto es de conocimiento común en la comunidad de WP :). Solo trato de aprender por qué las cosas son como son.