In molti temi che ho visto (incluso TwentyEleven) e negli esempi che ho trovato online, quando si crea il functions.php
file per un tema tutte le funzionalità sono dichiarate in un ambito globale. Per chiarire, ecco come appare un tipico file di funzioni:
function my_theme_do_foo() { // ... }
function my_theme_do_bar() { // ... }
add_action( 'foo_hook', 'my_theme_do_foo' );
Mi sembrerebbe che le cose potrebbero essere "incapsulate" un po 'meglio se si usasse una classe:
class MyTheme {
function do_foo() { // ... }
function do_bar() { // ... }
}
$my_theme = new MyTheme();
add_action( 'foo_hook', array( &$my_theme, 'do_foo' ) );
I vantaggi del secondo approccio (ai miei umili occhi):
- Nomi di funzioni più brevi
- Accesso alle variabili di istanza (il più grande vantaggio IMO)
- Nessuna funzione globale
Gli svantaggi:
- Il nome della classe potrebbe ancora causare conflitti
- Non è così chiaro "personalizzare" con un tema figlio (dovrebbe estendere una classe genitore)
- La maggior parte dei temi non ha funzionato in questo modo, quindi dovresti invertire la tendenza
Probabilmente sto trascurando alcune cose, ma mi chiedo perché non adottare l'approccio OOP? Mi sembra un po 'più "pulito", semmai. Forse mi sbaglio?
Sono abbastanza nuovo nello sviluppo del tema WordPress, quindi perdonami se questa è una conoscenza comune nella comunità WP :). Sto solo cercando di capire perché le cose sono come sono.