Wordpress için istenildiğinde yeri değiştirilebilir widget nasıl yapılır diye merak edenler olmuştur benim gibi. Daha önce benzer bir çalışmam olmuşu ancak bu sefer biraz daha ileri seyiye yani başlığı değişitirlebilir genel amaçlı widget nasıl yapılır ona bakalım.
Öncelikle unutlulmamalıdır ki eklediğiniz widget editlemeleri Wordpress’i güncellediğinizde kaybolacaktır tabii wp-includes/widgets.php dosyasında değişiklik yapılmışsa. Siz yine de her ihtimale kaşrı editlemelerinizi not etmeyi unutmayın.
İlk denenemizi yapalım, mesela Alexa widget’ini wordpress için widget olarak yapmak isteyelim.
wp-includes/widgets.pho dosyasını açalım.
Bu satırı bulalım;
function wp_widget_alexa_control() {
Hemen üstüne yapacağımız widget için gövde tanımlamamaızı ekleyelim. Gövde dediğimi kısım sayfada göstereceğimiz kodları yerleştireceğimiz alandır. Yapacağımız widget alexa için olacağından fonksiyonumuz bu şekilde olacaktır.
function wp_widget_alexa($args) {
extract($args);
$options = get_option(’widget_alexa’);
$title = apply_filters(’widget_title’, $options['title']);
if ( empty($title) )
$title = ‘ ’;
echo $before_widget . $before_title . $title . $after_title;
echo ‘<div id=”alexa_wrap”>’;
?>
<br />
<center>
Alexa kodlarını buraya ekleyin
</center>
<br />
<?php
echo ‘</div>’;
echo $after_widget;
}
Bu kodun hemen altına ekleyeceğimiz kontrol kodu yani widget’in başlığını değiştirilebilir yapmak istersek ekleyebiliriz değilse eklemeyebilirsiniz ancak kullanışlı olabilmesi için ekliyoruz.
function wp_widget_alexa_control() {
$options = $newoptions = get_option(’widget_alexa’);
if ( $_POST["alexa-submit"] ) {
$newoptions['title'] = strip_tags(stripslashes($_POST["alexa-title"]));
}
if ( $options != $newoptions ) {
$options = $newoptions;
update_option(’widget_alexa’, $options);
}
$title = attribute_escape($options['title']);
?>
<p><label for=”alexa-title”><?php _e(’Title:’); ?>
<input class=”widefat” id=”alexa-title” name=”alexa-title” type=”text” value=”<?php echo $title; ?>” /></label></p>
<input type=”hidden” id=”alexa-submit” name=”alexa-submit” value=”1″ />
<?php
}
Son bir işimiz daha kaldı o dan widgetimizi seçilebilir yapmak;
Bu satırı bulun ;
$widget_ops = array(’classname’ => ‘widget_search’, ‘description’ => __( “A search form for your blog”) );
Hemen üstüne bu kodu ekleyin;
$widget_ops = array(’classname’ => ‘widget_alexa’, ‘description’ => __( “Site Alexa rank değeri”) );
wp_register_sidebar_widget(’alexa’, __(’Alexa’), ‘wp_widget_alexa’, $widget_ops);
wp_register_widget_control(’alexa’, __(’Alexa’), ‘wp_widget_alexa_control’ );
Deişiklikleri Save yapın ve Admin->Design->Widgets bölümünden widget’inizi kullanmaya başlayabilirsiniz.
Denetim masasında bu şekilde görünecektir.


