Wordpress için eklenti vs yapmak istiyorsanız plugin yöntemiyle yapmakta fayda var zira her sitemizi güncellediğimizde eklentilerimiz için scriptimizi editlemek zorunda kalmayalım.
Biraz araştırma yapınca plugin ve beraberinde widget yapmanın sanıldığından daha kolay olduğunu gördüm. Öncelikle yararlandığım kaynağı göstermeliyim ki merak edenler kaynağından bakabilirler.
http://www.emanueleferonato.com/2008/02/15/how-to-create-a-wordpress-widget/
Tabii ki benim yaptığım anlatılanların biraz ötesinde yani geliştirilmiş bir anlatım ve en öneemlisi Türkçe kaynak. Anlatılanları dikkatlice uygularsanız istediğiniz şekilde widget yaparsınız.
Widget dosyası bir php dosyası veya php dosyaları topluluğundan başka bir şey değildir. Onun için bir widget dosyasının en önemli yeri açıklama satırlarının olduğu yer;
Örnek bir widget dosyası ;
-
/*
-
Plugin Name: Triqui
-
Plugin URI: http://www.emanueleferonato.com/
-
Description: Test widget
-
Author: Emanuele Feronato
-
Version: 1
-
Author URI: http://www.emanueleferonato.com/
-
*/
-
function triqui_widget() {
-
echo"<h2>Triqui widget</h2>I love <a href = \"http://www.emanueleferonato.com\">Emanuele Feronato</a>";
-
}
-
function init_triqui(){
-
register_sidebar_widget("Triqui", "triqui_widget");
-
}
-
add_action("plugins_loaded", "init_triqui");
Açılama satırı gibi göründüğüne bakmayın wordpress değişkenleri buradan alır. Şimdi sırasıyla açıklamalara geçelim;
Plugin Name: Site Pagerank
Plugin listesinde bu isimle görünecek
Plugin URI: http://www.weblistele.com/
Plugin yapımcısının web adresi. Plugin açıklamasında bu link yer alacak.
Description: Pagerank widget denemesi
Plugin açıklaması, yani neye yaradığını kısaca burada açıklarsanız plugins sayfasında bu görünecek.
Author: Zafer BAHADIR
Plugini yapan kişinin adı burada yer alır:
Version: 1.0
Plugin sürüm numarası
Author URI: http://www.weblistele.com/
Plugin yapımcısı web adresi
Şimdi asıl fonsiyonlara geçelim.
-
function triqui_widget() {
Bu fonsiyonun olduğu yerde uygulanmasını istediğimiz kodları yerleştiriyoruz. Eklenen kodlar HTML ise ?><?php taglarının arasına ekleyebilirsiniz. bu ?> tag php'yi pasif yapar ve bu <?php tag php'yi aktif hale getirir.
Bu fonksiyon ise pluginimizin Design->Widgets sayfasında görünmesini ve pluginin oradaki adınıda belirler.
-
function init_triqui(){
-
register_sidebar_widget("Triqui", "triqui_widget");
Pluginimizin etiketinin değiştirilebilir olmasını isterseniz bu fonsiyona bir bölüm daha eklenir, örnek parametre ile fonsiyonumuzun adının değiştirebileceği fonsiyonu çağırır.
-
   register_widget_control('Triqui', 'triqui_widget_options', 350, 120);
Bütün bunlardan yararlanarak yapmış olduğum basit bir pagerang widget'i plugin olarak veriyorum. İsterseniz üzerinde değişiklik yaparak sizde kendinize göre pluginler veya widget'ler yapabilirsiniz.
-
/*
-
Plugin Name: Site Pagerank
-
Plugin URI: http://www.weblistele.com/
-
Description: Pagerank widget denemesi
-
Author: Zafer BAHADIR
-
Version: 1.0
-
Author URI: http://www.weblistele.com/
-
*/
-
-
function widget_pagerank($args) {
-
$options = get_option('widget_pagerank');
-
$title = apply_filters('widget_title', $options['title']);
-
$title = '&nbsp;';
-
echo '<div id="pagerank_wrap">';
-
?>
-
<br />
-
<a href="http://www.mypagerank.net" target="_blank">
-
&nbsp;&nbsp;<img src="http://www.mypagerank.net/services/pagerankbutton/pagerankbutton.php?aut=de510918b8ea76980b92ea9e5d205b015e481667b926a44a75" border="0" alt="Powered by MyPagerank.Net" /></a>
-
<br /><br />
-
<?php
-
echo '</div>';
-
echo $after_widget;
-
}
-
-
function widget_pagerank_options() {
-
$options = $newoptions = get_option('widget_pagerank');
-
if ( $_POST["pagerank-submit"] ) {
-
}
-
if ( $options != $newoptions ) {
-
$options = $newoptions;
-
update_option('widget_pagerank', $options);
-
}
-
$title = attribute_escape($options['title']);
-
?>
-
<p><label for="pagerank-title"><?php _e('Title:'); ?> <input class="widefat" id="pagerank-title" name="pagerank-title" type="text" value="<?php echo $title; ?>" /></label></p>
-
<input type="hidden" id="pagerank-submit" name="pagerank-submit" value="1" />
-
<?php
-
}
-
-
function init_pagerank(){
-
register_sidebar_widget("Site Pagerank", "widget_pagerank");
-
register_widget_control('Site Pagerank', 'widget_pagerank_options', 350, 120);
-
}
-
-
add_action("plugins_loaded", "init_pagerank");
Bu görüntü plugin yerleşim alanından;







