• 25-05-2009, 13:26:56
    #1
    Merhaba arkadaslar.

    Hazırladıgım bir ana sayfa var.Ve ben bu ana sayfada eklenen son haberleri kategorilerine gore gosteriyorum.Blogdan bagımsız calısan ana sayfam windows-1254 karakter setinde.Malumunuz wp ise utf-8.Bu haliyle site ana sayfasında başlık ve ozetlerin latin harfleriyle cıkmasını saglıyor.Bunu ıcın yazdıgım fonksiyon:

    function turkcelestir($str) {
      $str = ereg_replace('ç', 'ç', $str);
      $str = ereg_replace('ÄŸ', 'ğ', $str);
      $str = ereg_replace('ı', 'ı', $str);
      $str = ereg_replace('ö', 'ö', $str);
      $str = ereg_replace('ÅŸ', 'ş', $str);
      $str = ereg_replace('ü', 'ü', $str);
      $str = ereg_replace('Ç', 'Ç', $str);
      $str = ereg_replace('ÄŸ', 'ğ', $str);
      $str = ereg_replace('İ', 'İ', $str);
      $str = ereg_replace('Ö', 'Ö', $str);
      $str = ereg_replace('Å', 'ş', $str);
      $str = ereg_replace('Ü', 'Ü', $str);
      return $str;
    }

    Buraya kadar normalde bir sorun yok.Blogdan bagımsız calısan ana sayfama blogdan verileri cektigim kodlar bunlar :

    <?
    $my_query = new WP_Query('cat=3&showposts=4');
    while ($my_query->have_posts()) : $my_query->the_post();$do_not_duplicate = $post->ID;
    ?>
    <center><h2><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?><br><?php the_excerpt()?></a></h2>
    </center>
    <?php endwhile; ?>

    Gordugunuz gibi arkadaslar başlık ve özletler fonksiyon olarak çağırılıyor.Ben bu fonksiyonları turkcelestirme fonksiyonum içerisine aldıgımda hic bir değişiklik olmuyor.Blogda hic bir karakter sorunu yok.Tek sorun blogdan bagımsız calısan ana sayfada.

    Bunu nasıl düzeltebilirim acaba bilgisi olan varmı arkadaslar ?
    Şunu denedim.

    $s = the_title();
    $baslik = turkcelestir($s);
    echo $baslik;
    buda zaten malumunuz turkcelestir(the_title()); anlamına geliyor.Ama ne yazıkki turkcelestir fonksiyonu içerisinde the_title(); fonksiyonu calısmıyor. Daha dogrusu hic bir duzelme olmuyor.Fonksiyon içerisinde nasıl fonksiyon calıstırabilirim ?

    Konuyu aynı anda birde Wordpress Turkce Karakter Sorunu bolumune yazdım ama birde buraya yazmak ıstedım php ile alakalı oldugu için.
  • 25-05-2009, 16:12:36
    #2
    çalışmamasının sebebi include edemiyor olduğundan olabilir
    turkcelestir fonksiyonun hangi dosyada onun include edilmesi lazım
  • 25-05-2009, 17:42:19
    #3
    the_title() fonksiyonu değerleri doğrudan echo ile basıyor , return ile vermediği için diğer fonksiyondan etkilenmiyor doğal olarak.

    bunu bir eklenti olarak yazarsanız sorunu aşarsınız diye düşünüyorum
  • 25-05-2009, 23:00:19
    #4
    Eposta Aktivasyonu Gerekmekte
    bağımsız çalışan sayfanda my_new_posts () fonksiyonunu çalıştırırsın.
    Denemedim, ama işini görebilir...
    function turkcelestir($str) {
      $str = ereg_replace('ç', 'ç', $str);
      $str = ereg_replace('ÄŸ', 'ğ', $str);
      $str = ereg_replace('ı', 'ı', $str);
      $str = ereg_replace('ö', 'ö', $str);
      $str = ereg_replace('ÅŸ', 'ş', $str);
      $str = ereg_replace('ü', 'ü', $str);
      $str = ereg_replace('Ç', 'Ç', $str);
      $str = ereg_replace('ÄŸ', 'ğ', $str);
      $str = ereg_replace('İ', 'İ', $str);
      $str = ereg_replace('Ö', 'Ö', $str);
      $str = ereg_replace('Å', 'ş', $str);
      $str = ereg_replace('Ü', 'Ü', $str);
      return $str;
    }
    
    function my_new_posts (){
    global $wpdb, $post;
    $mynewposts = $wpdb->get_results("SELECT $wpdb->posts.ID, post_title, post_content, post_category FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' AND post_category=3 limit 4");
    foreach ($mynewposts as $post) {
    $post_title = turkcelestir($post->post_title);
    $post_content = turkcelestir($post->post_content);
    echo "<h2><a href=\"".get_permalink()."\">$post_title</a></h2>";
    echo $post_content;
    }
    }
  • 26-05-2009, 00:26:24
    #5
    @taylanaktepe: cok sagol ama calısmadı. my_new_posts fonksiyonunda belirttiğin $wpdb global degişkenin herhangi birseye eşit olması gerekmiyor mu ?
  • 26-05-2009, 02:08:04
    #6
    @taylanaktepe: belirtmiş oldugun post_category degerini 3 yerine 0 yapınca calıstı.Fakat asıl sorun burada. Ekledıgım kategoriler için wp_posts tablosundaki post_category alanında ayrı bir id degeri vermiyor.Hepsi standart 0 olarak duruyor.Hal böyle olunca verileri kategori kategori cekemiyorum.

    <?
    $my_query = new WP_Query('cat=3&showposts=4');
    while ($my_query->have_posts()) : $my_query->the_post();$do_not_duplicate = $post->ID;
    ?>
    <center><h2><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?><br><?php the_excerpt()?></a></h2>
    </center>
    <?php endwhile; ?>

    ama bunu kullanınca kategorilere ayrılmıs sekilde cagırabiliyorum. (post_category degerleri 0 olmasına ragmen)

    bu wp ne illet birseymiş ya
  • 26-05-2009, 03:38:15
    #7
    mysql_query(”SET NAMES ‘latin5′”);
    mysql_query(”SET CHARACTER SET latin5¨);
    mysql_query(”SET COLLATION_CONNECTION = ‘latin5_turkish_ci’”);
  • 26-05-2009, 03:56:44
    #8
    @Ntie Sagolasın. Uzun ugraslar sonunda Ntie sayesinde başarmıs oldum.


    <?
    mysql_query("SET NAMES 'latin5'");
    mysql_query("SET CHARACTER SET latin5");
    mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");
    $my_query = new WP_Query('cat=3&showposts=5'); 
    while ($my_query->have_posts()) : $my_query->the_post();$do_not_duplicate = $post->ID; 
    ?> 
    
    <a href="<?php the_permalink() ?>"b><?php the_title(); ?></b><?php the_excerpt();?></a>
    
    <? endwhile; ?>

    Sorunsuz calısıyor...