Joomla’dan WordPress’e Geçmek

5
16824
Joomla'dan Wordpress'e Geçmek

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.

Joomla'dan WordPress'e Geçmek
Joomla’dan WordPress’e Geçmek

Bileşeni indirme linki: FG Joomla to WordPress

Kurulum tamamlandıktan sonra import linkine tıklıyoruz.

Joomla'dan WordPress'e Geçmek
Joomla’dan WordPress’e Geçmek

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.

Joomla'dan WordPress'e Geçmek
Joomla’dan WordPress’e Geçmek

 

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.

Joomla'dan WordPress'e Geçmek
Joomla’dan WordPress’e Geçmek

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ı

Joomla'dan WordPress'e Geçmek

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.

Joomla'dan WordPress'e Geçmek

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.

Joomla'dan WordPress'e Geçmek

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.

Joomla'dan WordPress'e Geçmek

Tabloları kaldırdıktan sonra az önce joomla database inden dışarı çıkardığımız 3 adet wp tablosunu içeri alıyoruz.

Joomla'dan WordPress'e Geçmek

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`

Joomla'dan WordPress'e Geçmek

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.

Joomla'dan WordPress'e Geçmek

İ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';
Joomla'dan WordPress'e Geçmek
Joomla’dan WordPress’e Geçmek

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.

5 YORUMLAR

    • 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 😉

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

CEVAP VER

Please enter your comment!
Please enter your name here