WordPress, sunduğu API ve hook sistemiyle geliştiricilere geniş bir özelleştirme imkanı sunar. Bu rehberde, WordPress aksiyon (action) ve filtre (filter) hook'larının kullanımını, temel API özelliklerini ve örnek kodlarla bu yapıları nasıl kullanabileceğinizi göstereceğiz.
Hook Nedir?
Hook'lar, WordPress'in belirli olaylarda veya işlevlerde dışarıdan müdahaleye izin verdiği noktalardır. İki ana türde hook vardır:
Action Hook (Aksiyon Kancası): Belirli bir olay meydana geldiğinde bir işlevi çalıştırmanıza olanak tanır.
Filter Hook (Filtre Kancası): Bir değeri işlemden geçirme veya değiştirme imkanı sağlar.
Action Hook Örneği
Aksiyon hook'ları genellikle bir olay gerçekleştiğinde çalışır. Örneğin, bir eklenti yüklenirken özel bir mesaj göstermek:
function my_custom_activation_message() {
echo '<div style="padding: 10px; background: #e0f7fa; border: 1px solid #00acc1;">Eklenti başarıyla aktif edildi!</div>';
}
add_action('admin_notices', 'my_custom_activation_message');
Yukarıdaki kod, admin panelinde bir bildirim göstermek için admin_notices
action hook'unu kullanır.
Filter Hook Örneği
Filtre hook'ları bir değeri işleyip değiştirmek için kullanılır. Örneğin, yazı başlıklarını değiştirmek:
function add_prefix_to_titles($title) {
if (is_singular('post')) {
return 'Özel: ' . $title;
}
return $title;
}
add_filter('the_title', 'add_prefix_to_titles');
Bu kod, yazı başlıklarının başına "Özel: " ekler.
WordPress API Kullanımı
WordPress API'leri, temel işlevleri genişletmek ve özelleştirmek için kullanılır. Örneğin, Settings API ile özel ayar sayfası oluşturabilirsiniz
Örnek: Özel Ayar Sayfası
function my_custom_settings_menu() {
add_menu_page(
'Özel Ayarlar',
'Ayarlar',
'manage_options',
'custom-settings',
'my_custom_settings_page'
);
}
add_action('admin_menu', 'my_custom_settings_menu');
function my_custom_settings_page() {
?>
<div class="wrap">
<h1>Özel Ayarlar</h1>
<form method="post" action="options.php">
<?php
settings_fields('custom_settings_group');
do_settings_sections('custom-settings');
submit_button();
?>
</form>
</div>
<?php
}
function my_custom_settings_init() {
register_setting('custom_settings_group', 'my_custom_option');
add_settings_section(
'custom_settings_section',
'Genel Ayarlar',
'',
'custom-settings'
);
add_settings_field(
'custom_text_field',
'Özel Metin',
'my_custom_text_field_callback',
'custom-settings',
'custom_settings_section'
);
}
add_action('admin_init', 'my_custom_settings_init');
function my_custom_text_field_callback() {
$value = get_option('my_custom_option', '');
echo '<input type="text" name="my_custom_option" value="' . esc_attr($value) . '" />';
}
Hook Kullanımında İpuçları
WordPress hook ve API'lerini kullanmak, eklenti ve tema geliştirirken güçlü bir altyapı sağlar. Bu rehber, temel bilgileri öğrenmenize yardımcı olduysa, WordPress Codex'te daha fazla bilgiye ulaşabilirsiniz. Unutmayın, doğru kullanıldığında hook'lar, WordPress sitenizi tamamen özelleştirebilir ve güçlü özellikler ekleyebilir.