Dalam banyak tema yang saya lihat (termasuk TwentyEleven) dan dalam contoh yang saya temukan online, ketika membangun functions.php
file untuk tema semua fungsi dideklarasikan dalam lingkup global. Untuk memperjelas, seperti inilah tampilan file fungsi:
function my_theme_do_foo() { // ... }
function my_theme_do_bar() { // ... }
add_action( 'foo_hook', 'my_theme_do_foo' );
Tampaknya bagi saya bahwa hal-hal dapat "dienkapsulasi" sedikit lebih baik jika kelas digunakan:
class MyTheme {
function do_foo() { // ... }
function do_bar() { // ... }
}
$my_theme = new MyTheme();
add_action( 'foo_hook', array( &$my_theme, 'do_foo' ) );
Keuntungan dari pendekatan kedua (di mata saya yang rendah hati):
- Nama fungsi yang lebih pendek
- Akses ke variabel instan (IMO keuntungan terbesar)
- Tidak ada fungsi global
Kerugiannya:
- Classname masih dapat menyebabkan konflik
- Tidak jelas untuk "menyesuaikan" dengan tema anak (harus memperpanjang kelas induk)
- Sebagian besar tema belum melakukannya dengan cara ini, jadi Anda akan merusak tren
Saya mungkin mengabaikan beberapa hal, tetapi saya bertanya-tanya mengapa tidak mengambil pendekatan OOP? Rasanya agak "lebih bersih" bagi saya, jika ada. Mungkin saya salah?
Saya cukup baru untuk pengembangan tema WordPress, jadi maafkan saya jika ini adalah pengetahuan umum di komunitas WP :). Hanya mencoba mempelajari mengapa segala sesuatunya seperti itu adanya.