ASP sistemden WordPress’e geçiş
Hasan ile bundan birkaç ay önce yazıştığımızda PC Labs‘ın alt yapısını WordPress’e taşıyacağımdan bahsetmiş, eğer kendisi için de uygun olursa bu konudaki deneyimlerimi Tekno Seyir okuyucuları ile paylaşmak istediğimi iletmiştim. Sağolsun beni kırmadı. Bu yazıda, PC Labs için kendimizin yazdığı ASP tabanlı bir içerik yazılımını WordPress’e aktarırken yaşadığım tecrübeleri ve bu konu hakkında naçizane tavsiyelerimi aktarmaya çalışacağım. Zamanım oldukça da WordPress hakkında deneyimlerimi Tekno Seyir vasıtası ile aktarmak isterim.
Blog sitesi olup da WordPress‘i duymayan var mıdır bilmiyorum. Tekno Seyir’in de alt yapısını güçlendiren WordPress, ilk bakışta basit bir blog yazılımı (ya da kişisel içerik yönetim yazılımı mı desek?) gibi görünüyor, ancak kolay kullanılabilir ve kullanıcı dostu olan bu yazılımı tam teşekküllü bir içerik yönetim yazılımı olarak kullanmak mümkün mü? Bu sorunun cevabı “Evet”.
WordPress’in destek forumlarında WordPress’i bazı yerel ama büyük gazetelerin web sitesini güçlendirmek için kullananlar var, teknoloji sitesi yapan var, statik içeriğe sahip bir firma sitesi yapan var, eğlence sitesi yapan var..
WordPress’i bir içerik yönetim yazılımı olarak kullanma girişiminde de bir süredir şahsen bulunuyordum. Sonuç başarılı. PC Labs‘da daha önce kendimizin yazdığı ve açıkçası işimizi yarım yamalak da olsa gören bir ASP tabanlı script kullanıyorduk. Bu scripti yazıp, geliştirmesini hemen bırakmıştık ve artık ihtiyaçlarımızı karşılayamaz hale gelmiş, editörler için yazı yazmak bu panelde işkence halini almıştı. Yeni bir içerik yönetim yazılımına geçiş bizim için şart gözüküyordu; alt yapıyı değiştirmediğimiz sürece PC Labs’da yapmak istediklerimizi gerçekleştiremeyecek durumdaydık.
Yeni bir site kurarken işler biraz daha basittir. Zira PC Labs’ın arşivinde bulunan 2000′e yakın yazıyı, kategori bilgilerini, konu bilgilerini, resimlerini, yazarlarını ve bunlar arasında olan tüm ilişkiyi doğru bir şekilde yeni sistem aktarmak gibi komplike işler de olabiliyor. Geçiş işlemi o kadar zahmetli bir iştir ki, genelde web siteleri ilk seçtikleri yazılımla yollarına uzun süreler devam ederler. Açıkçası ben de yeni geçeceğimiz yeni yazılımı biraz titizlikle seçmek durumunda kaldım.
Geçiş için ilk alternatiflerden birisi Bricolage idi. Bricolage; Macworld, Dünya Sağlık örgütü gibi büyük siteleri güçlendiren ve yüksek ölçekli ve açık kaynak kodlu bir içerik yönetim yazılımı. PERL ile yazılmış bir CMS. Daha önce bir tecrübem olmadığından ve PERL ile yazıldığından ve teknik destek için yüksek rakamlarda ücret ödemeyi göze almadığımdam Bricolage’ı arka sıralara ittim.
WordPress’i 2 seneyi aşkın süredir PC Labs Blog‘da kullanıyoruz. 1.5 sene boyunca neredeyse hiç karışmadan sorunsuz bir şekilde çalıştı, eklentilerin gücünü keşfettiğimde ise biraz gecikmiştim
WordPress’i 2.0 sürümüne geçtikten sonra daha detaylı inceledim ve WordPress’in bizim ihtiyaçlarımızı karşılayacağını düşündüm. PC Labs’ın alt yapısında WordPress’i tercih etmemin sebepleri:
* Aktif olarak geliştirilen ve arkasında önemli bir topluluk olması. Dökümantasyon, geliştiricilerin ilgisi. Türkçe tarafında da önemli bir topluluk var.
* Editörler için inanılmaz kolay bir arabirim sunması.
* İçerik ve özellik olarak beğendiğim blog’ların neredeyse hepsi WordPress ile güçlendirilmiş.
* Eklemek istediğim özelliklerin hepsinin eklentiler yoluyla sağlanması ve ihtiyaca yönelik eklenti geliştirmenin kolay olması.
Tema Tasarlarken Nelere Dikkat Etmek Gerekli?
Daha önce WordPress için hiç tema tasarlamadım ancak ‘kopya’ çekerek bu işin kolay olacağını tahmin ediyordum. PC Labs’ın tasarımının şablonunu ve CSS’ini hazırladıktan sonra yaptığım tek şey, dosyaları uygun bir şekilde isimlendirmek ve WordPress ile varsayılan tema olarak gelen Kubrick temasını kendime rehber alarak, fonksiyonları sayfalar içerisine yerleştirmem oldu. Taban olarak daha gelişmiş bir tema isterseniz, belki K2′ye gözatmak isteyebilirsiniz.
Ortaya çıkan tasarım, doğal olarak, WordPress temalarından uzaktan yakından ilgisi olmayan bir tasarımdı. Eski tasarımı neredeyse aynen korumuş oldum.
Kendi temanızı oluştururken bu adreste bulunan boş şablonları kullanabilirsiniz. 4 farklı çeşitteki boş şablonu kendi tasarımınıza uygun bir şekilde kullanabilirsiniz. Öte yandan, tema konusunda smashingmagazine.com‘u takip etmenizi tavsiye ederim. Yeni ve güzel WordPress temalarını, güzel tasarımlar hakkında ipuçları bu sayfada yer alıyor güncel olarak.
Hangi Eklentileri Kullandım?
WordPress’i kutudan çıktığı gibi kullanınca pek fazla özelliğe sahip olmuyorsunuz. Ekstra özellikler için mutlaka eklenti kullanmak gerekli. Sitenizi daha kullanışlı hale getiren, okuyucuların sitede gezinmesini kolaylaştıran, site yöneticisi olarak sizin siteyi daha iyi yönetmenize imkan veren, arama motoru performansını artıran yığınla eklenti bulunuyor. Kişisel olarak eklentileri http://planet.wordpress.org ve wp-plugins.net RSS beslemeleriyle takip ediyorum. Geçtiğimiz günlerde de WordPress’in daha iyi kullanıcı arabirimi sunduğunu resmi eklenti bölümünü kullanıcılara sunmuştu.
Açıkçası PC Labs için kendim ekstradan 1-2 eklenti yazmak durumunda kaldım. Bu eklentiler daha çok sitenin eski yapısının korunması ile ilgiliydi: Örneğin eski yazılar için kalıcı bağlantılarda kullanılan ve veritabanında “post_name” alanında saklanan değerleri oluşturmak için, eski yazıları yeni yazılara yönlendirmek için vs.
PC Labs’da kullandığım eklentiler ve kısa açıklamaları:
Kullandığım eklentilerin listesi şöyle:
- Akismet: Akismet olmasaydı sanırım bloglardaki spam mesajları engellemek başlı başına bir iş olacaktı. Akismet’in kendi istatistiklerine göre, gönderilen yorumların %95′i spam. Alternatif olarak Spam Karma 2 var, o da gayet başarılı.
- Dunstan Style Error Page: Sitenizde 404-sayfa bulunamadı hatalarını daha şık ve ziyaretçilerin işine yarar bir şekilde göstermek isterseniz, bu eklenti işinize yarayabilir. Hata sayfasında geri besleme kutusu formu var ve bu form Akismet ile spam’lere karşı denetleniyor.
- Embedded Video With Link: Sitede yaptığımız video incelemeleri sayfa içerilerine koymak için vya YouTube videolarını yazılara entegre etmek için kullanılabilecek eklenti. Daha bir çok video servisini de kullanabiliyorsunuz. WordTube bir diğer favorim. Podcasting için ise Audio Player eklentisini kullanıyorum. Bir diğer alternatif ise XSPF medya oynatıcısı.
- Get Custom Field Values: WordPress Loop’u içinde veya dışıda, yazıya ait özel alan değerlerini (Custom Field) kolayca görüntülemek için bu eklenti çok faydalı. WordPress 2.1.2 ile uyumlu. Yazı içerisinde özel alanları göstermek için ise Enzymes eklentisi kullanılabilir ama WP 2.1 ile uyumlu mu emin değilim.
- Google (XML) Sitemaps: Google, yahoo ve msn tarafından desteklenen, XML formatında site haritası oluşturmak için bu eklentiyi kullanmak gerekiyor. Her yazı yazdığınızda otomatik sitemap oluşturuluyor ve Google, Yahoo gibi arama motorları pinglenerek sitenizin güncellendiği haber veriliyor. Sitenize arama motoru optimizasyonu yapmak için kullanmak şart.
- IImage Gallery: Biraz basit ama yazılar içerisinde resim galerisi sunmak için kullanışlı bir eklenti.
- JumpTo: Eğer çok sayfalı yazılar oluşturmk istiyorsanız, bu eklenti oldukça kullanışlı. PC Labs’a uyarlamak için biraz modifiye etmek zorunda kaldım.
- Kill Preview 2: Yazı yazma ekranında, alt tarafta bulunan yazı ön izleme iframe’ini kapatıyor ve bunun yerine ön-izleme bağlantısı veriyor.
- Pagebar: Arşivleri arasında dolaşırken “İleri” ve “Geri” tuşları yerine 1,2,3. sayfa gibi navigasyon ekliyor.
- rc:custom field gui: Eğer çok fazla özel alan (custom field) kullanıyorsanız, bu eklenti ile bunları görsel bir şekilde daha kolay bir kullanıma sokabilirsiniz.
- Search Regex: Diyelimki PC Labs’daki gibi arşivinizde 2000 yazı var ve bu yazıların hepsinde “/images” olarak verilen resim yollarını “/resim/” olarak değiştirmek istiyorsunuz. Tek tek elinizle düzeltmeyi düşünmüyorsunuz umarım
Regex desteği de olan bu eklenti, yazı içerisinde belirli öbekleri değiştirmek istediğinizde kullanabileceğiniz can kurtarıcı bir eklenti. Favorim diyebilirim. - Search Reloaded: Bu eklentiyi geçici olarak kullanıyorum; zira WordPress’in standart arama özelliği başarılı değil. Bu eklenti, WordPress arama motorunu gayet iyi bir şekilde geliştiriyor. Ancak tarihe göre sıralayamama gibi bir eksisi var. Aslında site içerisinde Google aramasını entegre edeceğim ama bu tarz eklenti tavsiyesi olan varsa da dinlemek isterim.
- Search Meter: Kullanıcılar sitenizde hangi kelimeleri aramış, başarılı aramalar yapmış mı yapmamış mı gibi sorulara cevap bulmanızı sağlayan eklenti.
- Simple Tagging: Yazılarımızı daha kolay arşivlemek ve yazıları birbiriyle daha iyi ilişkilendirmek için onları etiketlemek şart. UTW bir diğer alternatif ancak fazla hızlı güncellenmiyordu. Simple Tagging, etiketleme konusunda aradığınız her özelliği sunuyor.
- Unfancy Quote: WordPress tarafından standart tırnak ve çift tırnakları, standart hale getiren eklenti.
- WP-Print: Yazıların yazıcı uyumlu görüntüsü için kullanıyorum bu eklentiyi de. Başka alternatif yok sanırsam. Gayet iyi.
- WWW Redirect: Şahsen, http://teknoseyir.com yerine www.teknoseyir.com kullanmayı tercih ediyorum. PC Labs’da uzun senelerden beri www kullanıyorum, www olmadan kullandığımda arama motoru sonuçları farklı sonuçlar verebilir ve iki farklı alan adı gibi algılanabilir. Bu eklenti, www yazılmadan siteye girildiğinde otomatik olarak URL başına www ekleniyor. 2.1.2 ile uyumlu. Internet’teki kullanıcılar 2′ye ayrılmış durumda: WWW’ye hayır diyenler, WWW’ye evet diyenler. Hangi tarafta olacağınıza kendiniz karar verin
- WP-Cache: Bir takım uyumluluk sorunları olsa da, site içeriğini statik sayfa oluşturarak kullanıcıya sunan bir eklenti. Performansı inanılmaz artırıyor. Çok yoğun bir siteniz varsa bu eklenti şart. Ancak dinamik sayaçlar bu eklenti ile beraber işlevselliğini yitirmekte.
- PC Labs için ayrıca yazdığım 2-3 farklı eklenti daha olmuştu. Bunlardan birincisi, http:// ile başlayan ve bağlantı yapılmamış adresleri otomatik bağlantı haline getiren eklenti; ikincisi, eski yazıları yeni yazılara yönlendirmek için kullandığım eklenti, 3.cüsü de konuları yönetmek için yazdığım bir eklenti. Otomatik URL yaratan eklentiyi biraz daha olgunlaştırdıktan sonra belki ihtiyacı olan olur diye WordPress’in eklenti dizinine ekleyeceğim.
Eski Yazıları Yenisine Yönlendirme
Oldukça eski bir siteye sahipseniz, alt yapı değişiminde en fazla dikkat edilmesi gereken konulardan birisi eski bağlantıları bir türlü yenisine yönlendirmek. Çünkü, kendi yazılarınız içinde diğer yazılarınıza bağlantı vermiş olabilirsiniz, diğer siteler yazılarınıza bağlantı vermiş olabilir vs. Tüm sitelere teker teker e-posta göndermek uzun iş. Eski yazılara yazi.asp?doc= şeklinde; ondan önce de article.asp?doc= şeklinde ulaşılıyordu. .htaccess’e şu satırları ekleyince sorunu neredeyse halletmiş oldum:
RewriteCond %{QUERY_STRING} ^doc=(.*)$
RewriteRule ^(.*).asp$ /?eskiadres=%1 [R=301, L]
Yukarıdaki satırların açıklaması şu:
1. Gelen URL’deki Query String’i doc olan istekleri al
2. Dosyanın uzantısı .asp ise (hangi dosya olduğu önemli değil), gelen değeri /?oldurl’ye aktar. Kullanıcıya da 301 başlıkları döndürülüyor. Bu, arama motorları için önemli.
Böylece, www.pclabs.gen.tr/yazi.asp?doc=1930 adresi, otomatik olarak /?eskiadres=1930′a yönlendiriliyor. WordPress’e yazdığım eklenti, bu sorguları alıp yeni kalıcı bağlantılara yönlendiriyor.
Son Olarak
İlk teşekkürüm WordPress’in Türkçe ayağına destek olan arkadaşlara. Özellikle Türkçe dil paketinin çok başarılı olduğunu altını çizerek söylemek lazım.
Hasan ile de hem WordPress’e geçiş öncesinde, hem de sonrasında sohbetlerimiz oldu; kendisine de ayrıca teşekkür ediyorum. Hakan‘ın da WordPress için yazdığı Türkçe eklentileri de unutmamak lazım.
WordPress ile ilgili “seyir” notlarım olduğunda Tekno Seyir okuyucuları ile de paylaşmaya gayret edeceğim. Son olarak, WordPress ile ilgili gelişmeleri ise planet.wordpress.org‘dan takip etmekteyim. WordPress ile ilgilenen birisiyseniz, e-posta listelerine girmeyi de ihmal etmeyin.
Not: PC Labs, uzun süredir keyifle takip ettiğim bir site. Bir süre önce altyapı olarak WordPress’e geçti; geçiş deneyimlerini bu güzel makaleyle bizimle paylaştıkları için site kurucusu ve genel yayın yönetmeni Özkan Erden‘e teşekkürler. - Hasan -
Yazar: Konuk Yazar | Tarih: 03 Nisan 2007 @ 18:52 | Kategori: WordPress Yorumlar RSS | Geri izleme | Yorum yapın

04 Nisan 2007, 09:06 tarihinde skykhan şöyle demiş:
Çok güzel bir yazı sevgili Özkan. Bunlar gibi yazıları sıklıkla görmek isteriz. Yazını yazılmasını sağlayan hasan’ada ayrıca tşkr.
04 Nisan 2007, 09:46 tarihinde Yusuf İBİLİ şöyle demiş:
Çok güzel bir makale olmuş. Böyle bıkmadan sıkılmadan hawaii tadında okudum. Sevgili Özkan Erden’e ve bu güzel yazıyı sitesinde yayınlayan Hasan’a teşekkürler…
04 Nisan 2007, 15:34 tarihinde grkn şöyle demiş:
gerçektende güzel bir yazı
pclabs gibi bir siteninde wordpress kullanabilmesi onun ne kadar esnek bir sistem olduğunun göstergesi bence
böyle yazıları daha çok görmek isteriz 
04 Nisan 2007, 21:42 tarihinde morphé şöyle demiş:
Geçtiğimiz gün utanmadım ve WordPress için “framework” ifadesini kullandım. Bu yazı bunun bir kanıtıdır. Ellerinize sağlık.
05 Nisan 2007, 12:41 tarihinde Mücahit şöyle demiş:
Wordpress’i çok güzel özetleyen bir yazı olmuş. özellikle eklentileri listelemeniz de ayrıca hoş olmuş.
Ayrıca wordpressle ilgili bir projem var. Okulumdaki öğrenci topluluklarının tamamına wordpress ile web sitesi hazırlamayı planlıyorum. bunu yaparken de kurucusu olduğum bilgisayar topluluğu adına yarışma tadında bir etkinlik planlıyorum. herkes bir topluluğun web sitesini üstlenecek ve oluşturdukları temalarla yarışacaklar. elbette kıyaslamak çok mantıklı olmayabilir ama önemli olan wordpress i tanıtmak ve toplulukların web sitesi sahibi olması.
okuldan tam yetki aldığım zaman kendi sitemde bununla ilgili duyuruyu yapacağım ve siz blog aleminin üstatlarından yardım da isteyeceğim. çünkü başlangıçta birkaç tane seminer vermek gerekecek.
bu planladığım etkinlik için bu yazı mükemmel bir başlangıç oluşturmuş. ileride kullanıp, size de haber vermek niyetindeyim. yarışma ile ilgili fikirleriniz de tabii ki önemli.
iyi çalışmalar…
08 Nisan 2007, 02:59 tarihinde nihilanth şöyle demiş:
çok iyi bir yazı olmuş. teşekkürler.
09 Nisan 2007, 11:05 tarihinde Volkan Karakuş şöyle demiş:
Yazıyı ilk görenlerden biri benim ama şimdi en son yorumu ben yapıyorum. (Sınavlar işte…)
Gerçekten çok faydalı bir yazı olmuş bu konuda yardıma ihtiyacı olanlar için güzel bir kaynak olabilir. Bence PDF veya başka bir formata çevirilip yayınlanması bile düşünülebilir. Bu güzel yazı için Teknoseyir’e (Hasan’a) ve Özkan Bey’e teşekkürler.
09 Nisan 2007, 20:25 tarihinde semih şöyle demiş:
bu detaylı yazınız için teşekkür ederiz. Ben bir konuyu merak ettim, acaba eski datalarınızı (access de veya hangi veri tabanında depoluyorsanız) nasıl wordpress e ekleyebildiniz ve eski tarihleri ile ?
cevaplayan biri olursa ayrıca teşekkür ederim
11 Nisan 2007, 14:19 tarihinde ozkan.erden şöyle demiş:
selamlar arkadaşlar,
öncelikle teşekkür ederim yazıyı beğendiğiniz için.
verileri aktarma işlemiyle ilgili olarak da farklı bir yazı hazırlıyorum. Zira o başlı başına bir işti.
29 Nisan 2007, 10:37 tarihinde Abdullah şöyle demiş:
Selamlar.
Yazınız güzel bir makale, biraz ansiklopedik bilgi, biraz da dinlendirici tadında olmuş.
Bilgilerinizi paylaştığınız için teşekkürler.
PcLaBs sitesini eskiden beri takip etmekteyim.
Çalışmalarınızda başarılar dilerim.
21 Mayıs 2007, 18:09 tarihinde Selim Yoruk şöyle demiş:
Yaziniz ilham verici desem yeridir. Ben de verileri aktarma işlemlerini merak ediyorum. Birkaç tahminim var ama…
“İçe aktar” kısmında rss verdiğinizde o rss’den aktarma işlemi yapabiliyor yanılmıyorsam. Pek tabi, eski veritabanından Wordpress’in anlayacağı şekilde bir rss çıktı sayfası üretmek gerekiyor hali hazırda yoksa.
Wordpress’in atom’undan aktarirsaniz her sey daha cok yerli yerine oturur sanirim. Kategoriler, yazarlar vs.
mesela: http://www.eanlat.com/?feed=atom (sag tiklayıp, kodlardan xml hiyerarşisini görebilmeniz mümkün)
14 Haziran 2007, 23:44 tarihinde nurkan şöyle demiş:
selam özkan yazin çok hoşuma gitti. Pclabs gibi bir siteyi joomla gibi bir cms yerine wp ye geçirmek gerçekten cesaret isteyen bir iş ama başarmışsın tebrikler. Fakat kalıcı bağlantıları varsayılan yerine örneğin /index.php/%postname%/ şeklinde özel bir yapıda kullansan aram motorları için daha erişilebilir olurdu kanısındayım.
22 Haziran 2007, 12:45 tarihinde ozkan.erden şöyle demiş:
Tekrar selamlar arkadaşlar,
Yazı içerisinde eski yazıları yeni yazya yönlendirmek için verdiğim rewrite kuralında yazım hatası var. Doğrusu şöyle olacak:
RewriteCond %{QUERY_STRING} ^doc=(.*)$
RewriteRule ^(.*).asp$ /?eskiadres=%1 [R=301, L]
Selim bey mail atınca farkettim.
Yazıları aktarırken doğrudan veritabanından veritabanına aktardım. İşlem sırası şu şekilde idi:
1. Kullanıcı bilgileri yeni tabloya aktarıldı ve eski kullanıcı ID’leri ile yeni kullanıcı ID’leri eşleştirildi
2. Kategori bilgileri aktarıldı. Aynı şekilde yanlışlık olmasın diye eski ID’lerin yerine yeni kategori ID bilgilerini koymak gerekti
3. Son olarak yazıları aktardım. Ancak eski yazıları yenisine yönlendirmek gerektiğinden, eski ID’leri ile yeni yazı ID’lerini farklı bir tabloda tutmak gerekiyordu yine. Böylece eski ID’nin hangi yeni ID’ye tekabül ettiğinin listesi elimdeydi.
@nurkan: Kesinlikle haklısın. İlk etapta
01 Mart 2008, 20:58 tarihinde Gokhan EGE şöyle demiş:
Eline sağlık, çok güzel ve amacına uygun bir makale olmuş. Devam etmesi dileğiyle.