En muchos temas que he visto (incluido TwentyEleven) y en los ejemplos que he encontrado en línea, al compilar el functions.php
archivo para un tema, toda la funcionalidad se declara en un ámbito global. Para aclarar, así es como se ve 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 humildes ojos):
- Nombres de funciones más cortos
- Acceso a variables de instancia (la mayor ventaja de la OMI)
- Sin funciones globales.
Las desventajas:
- El nombre de clase aún podría causar conflictos
- No es tan claro "personalizar" con un tema secundario (tendría que extender una clase principal)
- La mayoría de los temas no lo han hecho de esta manera, por lo que estarías resistiendo la tendencia
Probablemente estoy pasando por alto algunas cosas, pero me pregunto ¿por qué no adoptar el enfoque OOP? Se siente un poco "más limpio" para mí, en todo caso. Quizás estoy equivocado?
Soy bastante nuevo en el desarrollo de temas de WordPress, así que perdóname si esto es de conocimiento común en la comunidad de WP :). Solo trato de aprender por qué las cosas son como son.