Bu yazımda 2007 yılından açmış olduğum bir adet joomla sitemi 2017 yılında nasıl wordpress e dönüştürdüğümü, Joomla’dan WordPress’e Geçmek için neler gerekli, hangi ayarlamaların yapılması gerektiğinden adım adım bahsedeceğim. İngilizce karşılığı joomla to wordpress olan bu işlem için Türkçe çok fazla kaynak bulamadığım için kendi sitemi dönüştürmem çok uzun vakit aldı. İsterim ki bu işlemi yapmak isteyen arkadaşlar bu yazımı referans alarak hızlıca sonuca ulaşabilsin. Benim yazımın diğer Joomla’dan WordPress’e geçiş yazılarından farklı olarak eski linklerin bozulamadan taşınmasını ve jcomments bileşeni kullanıyorsanız yorumlarınızı da kaybetmeden taşınmasını da anlatacağım.
Karışıklık olmaması için eski siteyi joomlasitesi.com yeni siteyi wordpresssitesi.com olarak tanımlamak istiyorum. Şimdi adım adım neler yaptığımızı anlatma vakti.
WordPress Kurulumu
Mevcut joomlasitesi.com un altında ben “wp” adında bir subdomain ve yeni mysql açarak devam ediyorum ve buraya sıfır bir wordpress indirip kurulumu yapıyorum.
FG Joomla to WordPress Eklentisi
WordPress kurulumu bittikten sonra aşağıdaki resimde görüleceği gibi FG Joomla to WordPress bileşenini kuruyoruz. Normalde bu bileşen paralı sürümü olan ve kısıtlı özelliklerinin free/ücretsiz olarak biz kullanıcılara sunulmaktadır. Paralı sürümü ise şu bileşenlerin de wordpress e aktarılmasını sağlıyor. K2,EasyBlog, Flexicontent, Zoo, Kunena forum, sh404sef, JoomSEF, OpenSEF, WP-PostViews (keep Joomla hits), JComments, JomComment, Joomlatags, Attachments, Rokbox, JoomGallery, Phocagallery, Joom!Fish , ranslations to WPML, JEvents events, Contact Manager, Docman, Virtuemart, JReviews, Mosets Tree, User Groups, WPML, Simple Image Gallery & Simple Image Gallery Pro, RSGallery, Community Builder.
Ben ayrıca yukarıda koyu ile işaretlemiş olduğum jcomments bileşenini de kullandığım için jcomment to wordpress comment işlemini de yazımın devamında ayrıca anlatacağım.
Bileşeni indirme linki: FG Joomla to WordPress
Kurulum tamamlandıktan sonra import linkine tıklıyoruz.
Daha önceki wordpress içerisinde yer alan kategori,sayfa ve yazıların silinmesi için aşağıdaki 2 numaralı butona tıkladıktan sonra 3 numaradan içeriği boşaltıyoruz. Bu işlemi yapmamızın sebebi sıfırdan temiz bir şekilde kurulum yapmak içindir.
Aşağıdaki gibi ayarları yaptıktan sonra “connection succesfull” mesajını almanız gerekecektir. 4 numaralı alan eğer siteniz açık ise medya ve resimleri almak için gerekli. 5 ve 6 nolu numaralar genelde default ayarlardır çoğu site için geçerlidir. Eğer sizin ki özel ise değiştirebilirsiniz.
Hemen alt tarafta bir çok ince ayarın olduğu alanı göreceksiniz. 12 numaralı alanda, ben media ile ilgili kısmı “skip media” diyerek geçiyorum. 13 numaralı alan metaların ve keyword lerin taşınıp taşınmamasını soruyor, bu kısmı da işaretleyip 14 numaradan save ediyoruz ve 15 numaradan coşkuyu veriyoruz.
İşlem tamamlandıktan sonra kontrol ettiğinizde yazıların, etiketlerin ve kategorilerin taşındığını göreceksiniz.
Jcomments to WordPress Comment
Joomla’dan WordPress’e Geçmek yorumlarınızı kaybetmenize sebep değil. Ben önceki sitemde yorum bileşeni olarak jcomment kullanıyordum. Oldukça pratik ve kullanıcı dostu olan bu bileşenini wordpress sitemde maalesef çok özleyeceğim. İçindeki değerli yorumları kaybetmemek adına aşağıdaki işlemleri yaparsanız yeterli olacaktır.
Önce aşağıdaki kodları boş bir php dosyasına içine yapıştırın. Hiç bilmeyenler için yazıyorum notepad den bir txt dosyası açın aşağıdaki kodları içine yapıştırın ve farklı kaydet diyerek comment.php dosyası olarak kayıt edin. Kayıt etmiş olduğunuz bu dosyayı sitenizin ana root dizinine ekleyin.
<?php $username = "buraya joomla db kullanıcı adı"; $password = "buraya joomla db kullanıcı şifresi"; $database = "buraya joomla db adı"; mysql_connect('localhost', $username, $password); @mysql_select_db($database) or die( "Unable to select database"); @mysql_set_charset('utf8'); $query = "SELECT DISTINCT object_id FROM jos_jcomments"; echo $query; print " "; $pids = mysql_query($query); if (!$pids) { echo mysql_error(); } $num = mysql_numrows($pids); $i = 0; while ($i < $num) { $pid = mysql_result($pids, $i, "object_id"); $query = "SELECT created FROM jos_content WHERE id = " . $pid; echo $query; print " "; $created = mysql_query($query); if (!$created) { echo mysql_error(); } $ct = mysql_result($created, 0, "created"); $query = "SELECT ID FROM wp_posts WHERE post_date = '" . $ct . "' AND post_type = 'post'"; echo $query; print " "; $wpids = mysql_query($query); if (!$wpids) { echo mysql_error(); } $wpid = mysql_result($wpids, 0, "ID"); $query = "SELECT * FROM jos_jcomments WHERE object_id = " . $pid; echo $query; print " "; $comments = mysql_query($query); $comments_count = mysql_numrows($comments); $j = 0; while ($j < $comments_count) { $author = mysql_result($comments, $j, "name"); $email = mysql_result($comments, $j, "email"); $url = mysql_result($comments, $j, "homepage"); $ip = mysql_result($comments, $j, "ip"); $cdate = mysql_result($comments, $j, "date"); $content = mysql_result($comments, $j, "comment"); $content = mysql_real_escape_string($content); $query = "INSERT INTO wp_comments (comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_author_IP, comment_date, comment_date_gmt, comment_content) VALUES (" . $wpid . ", '" . $author . "', '" . $email . "', '" . $url . "', '" . $ip . "', '" . $cdate . "', '" . $date . "', '" . $content . "')"; echo $query; print " "; mysql_query($query); $j++; } $query = "UPDATE wp_posts SET comment_count = " . $comments_count . " WHERE ID = " . $wpid; echo $query; print " "; mysql_query($query); $i++; } mysql_close(); ?>
Bildiğiniz üzere joomla siteler önceleri jos_ ön eki ile wordpress ise wp_ ön eki ile başlar. Hazırlamış olduğumuz bu dosyayı çalıştırmadan önce joomla içerisine 3 adet tablo açmamız gerekecek. Çünkü yukarıdaki yazılım joomlanın içerisinde yer alan jcomments verilerini yine aynı database içerisinde yeni tablolara taşımak isteyecek. Bu sebeple bir takım yamalama işlemi yapacağız. Bu adımlar biraz karışıktır tane tane yazacağım, lütfen karıştırmamaya dikkat edin.
1-WP database inden tablo çıkarılması
Aşağıdaki resimde gördüğünüz üzere wp_comments, wp_postmeta, wp_posts tablolarını dışarı aktarmamız gerekiyor. Sol taraftan tik işaretlerini seçip aşağıdaki dropdown dan seçilileri Dışa Aktar yapıyoruz.
2-Joomla DB ine Tablo Eklenmei
Sonra joomla database imize tıklıyoruz ve yukarıdan içe aktar kısmına geliyoruz. Aşağıda görüldüğü üzere az önce wordpress db den çıkarmış olduğumuz 3 adet tablo dosyasını Dosya Seç seçeneğinden içeri ekliyoruz ve git diyoruz.
3-Yorumların Dönüştürülmesi
Sonrasında yukarıda oluşturmuş olduğumuz yazılım dosyası olan comment.php dosyasını çalıştırıyoruz. bunun için joomlasitesi.com/comment.php adresine gitmeniz yeterli olacaktır. Bir takım işlemler gerçekleşecek. Var olan jcomments verileri az önceki içeri almış olduğumuz wp_comments tablosunun içine taşınacak. Yani bir nevi fırına ekmeği vermiş olduk ve sıra pişen ekmeği dışarı almaya geldi.
4-Dönüştürülen Yorumların Çıkarılması
Az önceki yaptığımız benzer işlemleri tekrar gerçekleştireceğiz. Bu sefer joomla db sinde olan 3 adet tabloyu aşağıdaki gibi işaretleyip, alt taraftaki seçilileri dışarı aktar seçeneğinden dışarı alacağız. Gördüğünüz gibi jos_ tabloları ile wp_ tabloları ayrı ayrı duruyor.
5-Yeni Yorumların WordPress DB sine Aktarılması
Dışarı aktarmış olduğumuz içi jcomments yorumları ile dolu olan tabloları wordpress sistemine tekrar import etme (aktarma) zamanı geldi. Ama öncesinde wordpress database inde olan bu tabloları kaldırmamız gerekiyor ki üst üste bindiği zaman çakışma olmasın, temiz temiz kurulum yapalım. Bu sebeple eski wp tablolarını aşağıdaki gibi işaretleyip seçilileri kaldı seçeneğinden siliyoruz.
Tabloları kaldırdıktan sonra az önce joomla database inden dışarı çıkardığımız 3 adet wp tablosunu içeri alıyoruz.
Artık bu son işlemdi ve şimdi koşa koşa wordpress sitenizin içerisine girdiğiniz zaman yorumlar sekmesine tıklayın ve joomla daki yorumlarınızın birebir aynısının wordpress e geldiğini gözlemleyin.
Joomla Makale Okunma Sayılarının WordPress’e Aktarılması
Bu adım olmazsa olmaz değildir ama her şeyi ile eksiksiz wordpress e aktarmak isteyen beni gibi takık birisi iseniz bu adım tam size göre. Şimdi joomla daki makalelerin okunma sayılarını wordpress e taşıdığımız makalelerin okunma sayılarına aktaracağız. Bunun için ihtiyacımız olan microsoft excel programı.
ilk önce joomla db sinin olduğu tabloya tıklayarak SQL yazan sekmeye tıklıyoruz ve aşağıdaki resimde adım adım görüleceği üzere işlemleri yapıyoruz. Bu işlemlerden sonra makale “id” leri birlikte okunma sayıları yani “hits” lerin geldiğini göreceksiniz.
SQL Sorgusu bu şekilde olacak.
SELECT id,hits FROM `jos_content`
Sonrasında aşağıdaki resimde görüldüğü gibi dışarı aktarırken özel olarak işaretleyip excel csv dosyası olarak dışarı alıyoruz.
İndirmiş olduğunuz exceldeki okunma sayılarını aşağıdaki gibi 1 numaralı sütuna, 2 numaralı sütuna ise 1 den başlayarak 2,3,4,5 şeklinde otomatik arttırım yaparak, 3 numaralı sütundaki gibi SQL kodunu elde ediyoruz. Bilmeyenler için yazayım otomatik arttırım için ilgili hücrenin sağ alt köşesine mouse ile geldiğinizde mouse artı işareti olacaktır ve basıp kaldırmadan aşağı doğru çektiğiniz zaman otomatik şekilde artacaktır.
UPDATE wp_postmeta SET meta_value=1944 where post_id=1 and meta_key= 'post_views_count';
Yukarıdaki 3 numaralı alandaki kodu komple aşağı doğru seçip tekrar SQL sekmesine gelip yapıştırıp “Git” dediğimiz zaman tüm okunma sayısı güncellenmesi tamamlanmış olacaktır.
Joomla’dan WordPress’e Geçmek Eski URL Yapınızı Bozmasın
Joomla da sistem yapısı gereği seo yapılı url linklerinde joomlasitesi.com/143-makale-adi şeklinde makale id si bulunmaktadır. Fakat wordpress te böyle bir durum yok. Google da indexli linklerinizin bozulmaması ve aldığınız backlinklerin kırılmasını istemiyorsanız taşıdığınız wordpress in de url lerini joomla gibi yapabilirsiniz. Bunun benim bulmuş olduğum 2 yöntemi olduğunu söylemek istiyorum. İlk yöntem amele yöntemi olup ilk başta yapmaya çalıştığımı 🙂 sonra yorulup bırakıp 2.yönteme geçtiğim yöntemi aşağıda anlatayım.
Merhaba. Merak ettiğim şey şu; siteyi taşıdıktan sonra url ler eski sitedeki gibi kalması için ne yapmamız gerekiyor?
Selam Ozan.
Evet sen diyince aklıma geldi. URL lerdeki ID kısımlarını soruyorsun değil mi? O iş beni çok zorladı. Günlerce eski url leri yakalamaya çalıştım. Nitekim başarılı da oldum. Yazıma eklemeyi unutmuşum. Kısa zamanda yazımı güncelleyeceğim. Takipte kal 😉
Konudada yorumdada anlatacagim demissin anlatmamissin, nasil yapiliyor url tasima ?
Haklısın hocam, o ara işlerimde bir yoğunluk oluştu konuya dönemedim. Sitede konu yazacak vakit bile bulamıyorum, üzgünüm. Zaman ayırabilirsem hem bunu tamamlarım, hem de yeni içerikler eklerim.
hepsini mysqli ye çevirdim mysqli_fetch_assoc la çektim. tüm değişkenlerde veri olmasına rağmen insert into çalışmıyor. hata veriyor şimdi ona bakıyorum. Düzeltince vericem scripiti..
Mysql fonksiyonları bende çalışmadı. O yüzden mysqli yaptım.