Tag Archive | "widget"

Plugin olarak widget yapmak.

Etiketler :


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ı ;

PHP:
  1. /*
  2. Plugin Name: Triqui
  3. Plugin URI: http://www.emanueleferonato.com/
  4. Description: Test widget
  5. Author: Emanuele Feronato
  6. Version: 1
  7. Author URI: http://www.emanueleferonato.com/
  8. */
  9. function triqui_widget() {
  10. echo"<h2>Triqui widget</h2>I love <a href = \"http://www.emanueleferonato.com\">Emanuele Feronato</a>";
  11. }
  12. function init_triqui(){
  13. register_sidebar_widget("Triqui", "triqui_widget");
  14. }
  15. 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.

PHP:
  1. 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.

PHP:
  1. function init_triqui(){
  2. 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.

PHP:
  1.     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.

PHP:
  1. /*
  2. Plugin Name: Site Pagerank
  3. Plugin URI: http://www.weblistele.com/
  4. Description: Pagerank widget denemesi
  5. Author: Zafer BAHADIR
  6. Version: 1.0
  7. Author URI: http://www.weblistele.com/
  8. */
  9.  
  10. function widget_pagerank($args) {
  11. extract($args);
  12. $options = get_option('widget_pagerank');
  13. $title = apply_filters('widget_title', $options['title']);
  14. if ( empty($title) )
  15. $title = '&amp;nbsp;';
  16. echo $before_widget . $before_title . $title . $after_title;
  17. echo '&lt;div id="pagerank_wrap"&gt;';
  18. ?&gt;
  19. &lt;br /&gt;
  20. &lt;a href="http://www.mypagerank.net" target="_blank"&gt;
  21. &amp;nbsp;&amp;nbsp;&lt;img src="http://www.mypagerank.net/services/pagerankbutton/pagerankbutton.php?aut=de510918b8ea76980b92ea9e5d205b015e481667b926a44a75" border="0" alt="Powered by  MyPagerank.Net" /&gt;&lt;/a&gt;
  22. &lt;br /&gt;&lt;br /&gt;
  23. &lt;?php
  24. echo '&lt;/div&gt;';
  25. echo $after_widget;
  26. }
  27.  
  28. function widget_pagerank_options() {
  29. $options = $newoptions = get_option('widget_pagerank');
  30. if ( $_POST["pagerank-submit"] ) {
  31. $newoptions['title'] = strip_tags(stripslashes($_POST["pagerank-title"]));
  32. }
  33. if ( $options != $newoptions ) {
  34. $options = $newoptions;
  35. update_option('widget_pagerank', $options);
  36. }
  37. $title = attribute_escape($options['title']);
  38. ?&gt;
  39. &lt;p&gt;&lt;label for="pagerank-title"&gt;&lt;?php _e('Title:'); ?&gt; &lt;input class="widefat" id="pagerank-title" name="pagerank-title" type="text" value="&lt;?php echo $title; ?&gt;" /&gt;&lt;/label&gt;&lt;/p&gt;
  40. &lt;input type="hidden" id="pagerank-submit" name="pagerank-submit" value="1" /&gt;
  41. &lt;?php
  42. }
  43.  
  44. function init_pagerank(){
  45. register_sidebar_widget("Site Pagerank", "widget_pagerank");
  46. register_widget_control('Site Pagerank', 'widget_pagerank_options', 350, 120);
  47. }
  48.  
  49. add_action("plugins_loaded", "init_pagerank");

Bu görüntü plugin yerleşim alanından;

Arama widget’inin geliÅŸtirilmesi

Etiketler :


wordpress de fark ettiğim arama kutusunun kenarlığının olmadığı ve adının değiştirilemediğidir. Bunu düzenlemek için yapılacak sadece bir kaç editleme var.

wp-inludes/widgets.php dosyasını açalım;

Bu kodu bulun;

PHP:
  1. function wp_widget_search($args) {
  2. extract($args);
  3. $searchform_template = get_template_directory() . '/searchform.php';
  4.  
  5. echo $before_widget;
  6.  
  7. // Use current theme search form if it exists
  8. if ( file_exists($searchform_template) ) {
  9. include_once($searchform_template);
  10. } else { ?&gt;
  11.  
  12. echo $after_widget;
  13. }

Bununla deÄŸiÅŸtirin:

PHP:
  1. function wp_widget_search($args) {
  2. extract($args);
  3. $searchform_template = get_template_directory() . '/searchform.php';
  4. $options = get_option('widget_search');
  5. $title = apply_filters('widget_title', $options['title']);
  6. if ( empty($title) )
  7. $title = ' ';
  8. echo $before_widget . $before_title . $title . $after_title;
  9. <div>';
  10.  
  11. // Use current theme search form if it exists
  12. if ( file_exists($searchform_template) ) {
  13. include_once($searchform_template);
  14. } else { ?&gt;
  15.  
  16. echo '</div>
  17. ';
  18. echo $after_widget;
  19. }
  20.  
  21. function wp_widget_search_control() {
  22. $options = $newoptions = get_option('widget_search');
  23. if ( $_POST["search-submit"] ) {
  24. $newoptions['title'] = strip_tags(stripslashes($_POST["search-title"]));
  25. }
  26. if ( $options != $newoptions ) {
  27. $options = $newoptions;
  28. update_option('widget_search', $options);
  29. }
  30. $title = attribute_escape($options['title']);
  31. ?&gt;
  32.  
  33. }

Bu kodu bulun:

PHP:
  1. wp_register_sidebar_widget('search', __('Search'), 'wp_widget_search', $widget_ops);

Altına bunu ekleyin :

PHP:
  1. wp_register_widget_control('search', __('Search'), 'wp_widget_search_control' );

Hepsi bu kadar, şimdi nasıl göründüğüne bakalım.

<p><br></p>
<p><br></p>

Woredpress için Widget nasıl yapılır

Etiketler :


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.

<br />

Ö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 = '&nbsp;';
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.

<p><br></p>

Kategoriler

 

ArÅŸiv

Güncel Yorumlar

    Online Üyeler

     

    November 2008
    M T W T F S S
    « Aug    
     12
    3456789
    10111213141516
    17181920212223
    24252627282930

    Sponsored

    Sayfa DeÄŸeri