Gli sviluppatori che usano WordPress adottano un approccio OOP raramente e quando lo fanno tendono a sovraccaricare il costruttore delle classi con svariati metodi richiamati all'interno di azioni o filtri di WordPress. Fortunatamente esiste una soluzione.
Di solito gli sviluppatori utilizzano il seguente pattern:
class MyClass {
public function __construct() {
add_action( 'wp_enqueue_scripts', array( $this, 'addScripts' ) );
add_action(' wp_enqueue_styles', array( $this, 'addStyles' ) );
}
public function addScripts() {
// carica i file JavaScript
}
public function addStyles() {
// carica i file CSS
}
};
$myClass = new MyClass(); // lancia le action
Il problema è che maggiore è il numero di metodi da lanciare maggiore sarà il carico di lavoro del costruttore della classe. La soluzione è quella di utilizzare una sintassi alternativa.
add_filter( 'the_content', array( 'MyClass', 'addFilterToContent' ) );
add_filter( 'the_excerpt', array( 'MyClass', 'addFilterToExcerpt' ) );
In questo modo non c'è più bisogno di utilizzare il costruttore della classe per inizializzare il codice dei metodi. La sintassi di cui sopra è l'equivalente del tradizionale operatore di scope in PHP.