Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer

WordPress Eklenti Aktivasyon Fonksiyonu

1 min read

WordPress’te eklenti yazmayı düşünenlerin bilmesi gereken fonksiyonlardan belki de en önemlisi aktivasyon fonksiyonudur yani register_activation_hook(). Bu fonksiyon sayesinde eklentimiz etkinleştirildiğinde veritabanında tablolar oluşturulmasını ya da yöneticiye bir mesaj göstermeyi sağlayabiliriz. Bu faydalı fonksiyonun kullanımı ise şu şekildedir;

Çağırılacak Fonksiyon

Aktivasyon fonksiyonunu kullanmadan önce aktivasyon anında yapılmasını istediklerimizi belirtmemiz gereken bir fonksiyona ihtiyacımız vardır. Yakuter Rastgele Sözler Eklentisi‘nden örnek vermek gerekirse diyelim ki eklenti etkinleştirildiği zaman veritabanında bir tablonun oluşmasını istiyoruz. Malum daha sonra eklentiyi kullanırken veriler (bizim örneğimizde rastgele sözler) bu tabloya kaydedilecek. Bu fonksiyonu şöyle tanımlayabiliriz:

[php]/* ********** Veritabani yükleme – DB Install ********** */
function ysoz_install()
{ global $wpdb;
$db_sql="CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}ysoz` (
`id` bigint(20) NOT NULL auto_increment,
`metin` text NOT NULL ,
PRIMARY KEY (`id`)
)";
$wpdb->query($db_sql);
} [/php]

Aktivasyon Fonksiyonu

Aktivasyon esnasında yapılacakları belirledikten sonra sıra bu fonksiyonu çağırmaya geliyor. İşte bunun için de yazımızın konusu olan register_activation_hook() fonksiyonundan faydalanıyoruz.

[php]register_activation_hook(__FILE__,’ysoz_install’);[/php]

Deaktivasyon Fonksiyonu

Diyelim ki eklentiyi etkisizleştirdiğimizde yukarıdaki işlemin tersinin olmasını istiyoruz ve veritabanındaki tabloların silinmesini istiyoruz. Onun için de şöyle yapabiliriz.

[php]/* ********** Veritabani kaldırma – DB Uninstall ********** */
function ysoz_uninstall()
{ global $wpdb;
$db_unsql="DROP TABLE IF EXISTS {$wpdb->prefix}ysoz";
$wpdb->query($db_unsql);
}

register_deactivation_hook( __FILE__, ‘ysoz_uninstall’ );[/php]

Sınıf (Class) İçindeki Fonksiyonu Çağırma

Biraz daha ileri bir örnek vermek gerekirse eğer eklentinizde sınıf(class) kullanmışsanız ve bu sınıf içindeki bir fonksiyonu çağırarak aktif hale getirmek istiyorsanız o zaman da şöyle bir yol izleyebilirsiniz.
[php]class MyPlugin {
static function install() {
// etkinleştirme fonksiyonu içeriği
}
}
register_activation_hook( __FILE__, array(‘MyPlugin’, ‘install’) );[/php]

Kaynak: WordPress Codex

Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer