folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Bir Başka Veritabanını Php İle Wordpress Aktarma.



Bir Başka Veritabanını Php İle Wordpress Aktarma.

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    K4R4B4S4N
    K4R4B4S4N's avatar
    Kayıt Tarihi: 01/Eylül/2005
    Erkek

    Merhaba arkadaşlar,

    elimde makalelerin bulunduğu veritabanım mevcut ve yine bunu wordpress siteme aktarmak istiyorum fakat tam başarılı olamadım php ve wordpress tablo yapısı hakkında bilgi sahibi arkadaşlardan yardım bekliyorum.

    Aşağıda kendi çabalarımla oluşturduğum kodlar mevcut. çalışıyor fakat tam istediğim gibi değil.

    1- wordpress insert ederken türkçe karakter bozuk oluyor.
    2- insert ederken parafrafın tamamını değil ilk kelimeyi veya kelimenin yarısını alıyor.
    3- resmi özel alan olarak eklediğinden emin değilim.

    4- Önemli olan işi gerçekleştirmek başka şekildede yapabiliriz amaca uygun olsun yeter, misal wordpress admin panelde xml import var. bu yapıya uygun şekilde haberlerimi xml şekle dönüştürebilirsem başarılı olurum ama yine yardım lazım..  yani wordpresten xml kalıbı çıkarıp veritabanını ona göre uyarlamaktan bahsediyorum.

    <meta http-equiv="Content-Type" content="text/html; charset=windows-1254" />
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
    <?php
    $DBHost= "localhost";
    $DBUser= "veritabanuser";
    $DBPassword="123456";
    $DBName="dbadimvs..";
    $conn =    mysql_connect($DBHost,$DBUser,$DBPassword);
    mysql_select_db($DBName,$conn);
    //mysql_query("SET NAMES 'latin5'"); 
    //mysql_query("SET CHARACTER SET latin5"); 
    //mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'"); 
    
    
    // verileri çekiyorum..
    $results = mysql_query("SELECT * FROM Content",$conn);
    
    $i = 0;
    while ($row = mysql_fetch_array($results,MYSQL_ASSOC)) {
      $post = array();
      $post['post_status'] = 'draft';
      $post['post_category'] = array(4);
      $post['post_date'] = date('Y-m-d H:i:s',strtotime($row['DateCreated']));
      $post['post_title'] = $row['Title'];
                  // Makale başlık
      $post['post_content'] = $row['Description'];
       // Makale Açıklaması
      $resim = $row['Image1'];
         // Makale resmi
      $posts[$i] = $post;
    
      $i++;
    
    }
    
    
    mysql_free_result($results);
    mysql_close($conn);
    
    require('./wp-load.php');
    
    foreach ($posts as $post) {
    
     wp_insert_post($post);
    
     $ozekle = mysql_query("Insert Into wp_postmeta (post_id,meta_key,meta_value) values ('$id','resim','$resim')"); 
    
      echo "eklendi";
    
      echo $post['post_title'];
    
      echo "<br/>";
    
      echo $resim;
    
    }
    
    
    ?>

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NmC
    NmC's avatar
    Kayıt Tarihi: 23/Kasım/2008
    Erkek

    Hocam bu kodlamalardan çok çekmiş birisi olarak kendi çözümümü söylüyorum...

    Meta tag olarak utf-8 kullan...

    Mysql ile bağlanırken

    "SET NAMES 'utf8'"
    'SET CHARACTER SET "utf8"' yap..

    phpmyadminden oluşturduğun db nin karşılaştırmasını utf8_unicode_ci veya utf8_turkish_ci yap..

    ayrıca string girilen her alanın da karşılaştırmasını phpmyadminden bu şekilde ayarla ( standartta latin1_swedish_ci mi ne yapıyodu)

    büyük ihtimal karakter problemin çözülür (:


    There are 10 types of people in the world. Those who knows binary and those who dont...
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    snnyk
    snnyk's avatar
    Kayıt Tarihi: 28/Mayıs/2007
    Erkek

    sadece wp_postmeta tablosuna eklersen olmaz :| az bekle editlicem :)

    edit:

    öhm;

    wp_posts tablosuna

    guid,post_author,post_date,post_date_gmt,post_content,post_title,post_status,comment_status,ping_status,post_name,post_modified,post_modified_gmt,post_type

    kolonlarını

     

    wp_postmeta tablosuna

    post_id,meta_key,meta_value kolonlarını

    buradaki olay özel alan denilen kısımdır

    çoğu wp templatede blog eklerken ana sayfada çıkmasını istediğiniz resmi özel alan olarak Image,image,img şeklinde eklemeniz söylenir

    meta_key girdiğin özerl alan adı meta_value değeri post_id ise hangi postta ait olduğunu gösterir  örnek versek şöyle olurdu ;

    mysql_query("insert into wp_postmeta(post_id,meta_key,meta_value) values('$LID','mm_image','$resim')")or mysql_error();

    vs..

    son olarakta

    wp_term_relationships tablosuna

    hangi kategoriye ait olduğu eklenmeli

     

    böyle bişeydi :|

     


    snnyk.com - code is poetry all that i know...
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    K4R4B4S4N
    K4R4B4S4N's avatar
    Kayıt Tarihi: 01/Eylül/2005
    Erkek

    kodlarda  wp fonksiyonlarını kullanıyorum o kendisi otomatik eklemiyormu ?

    require('./wp-load.php');

    41  
    42 foreach ($posts as $post) {
    43  
    44  wp_insert_post($post);
Toplam Hit: 1033 Toplam Mesaj: 4