Bir başlığı yayımlamadan önce hazırlık safhası vardır kimileri direkt Host üzerindeki WordPress üzerinde bunu yapar , fakat bu pek tavsiye edilmez , çünkü yazarken yapılan hatalar , arada save etme
gerekliliği , yayımladıktan sonra vazgeçip silme olasılığı gibi nedenlerle sıkıntılar çıkabilir , ilaveten ikide birde arama motorlarını pinglemek (her save ettiğimizde) bizi kara listeye almalarına sebep olabilir , fakat eğer bilgisayarınızda bir Apache server kurulu ise , yazı taslakları burada hazırlanır ve sadece nihai hali kopyalanıp Anasayfda yayımlanır , hem sitenin aynı anda iki yerde olması güvenlik açısından da faydalıdır birine birşey olsa diğerinin yedeğinden çalışmayan tekrar aktif hale getirilebilir bunu sürekli hale getirmişken arada Host yada bilgisayarınızdaki serverde yeralan anasayfanızda köklü bir değişiklik yaptınızssa , mesela tema değişikliğine bağlı olarak bütün başlıklara Öne çıkarılmış görseller (featured images) oluşturmak gibi Burada sıra host a yüklemeye geldiğinde başlık ID leri kontrol etmeden Host a yüklemeyin sebebi ;
- Hosttaki site eski temada ve Öne çıkarılmış görselleri olmayan bir veritabanına sahip
- Bilgisayarınızdaki serverde yeralan ise yeni tema ve Featured images oluşturulmuş durumda
- Local dekini Host a bu hali ile neden atamayız derseniz ? Son 5-6 başlığın ID si Hosttaki aynı başlıkların ID leri ile uyuşmuyor , peki bu nasıl olur ? çok basit eğer Localde bir başlık açıp birkaç satır yazdıktan sonra komle sildinizsse ID ondan sonra açacağınız başlıkların ID leri ile Hostta ki sitedekilerin ID leri uyuşmayacaktır , peki uyuşmasada Localdekini Hosta atamazmıyız , atılabilir ama tavsiye etmem çünkü :
- Bu başlıkları google indexlemiştir
- Başlıklar sitemap ta yeralmıştır
- Eğer Bu şekli ile host a atılırsa , hem sitemapta mükerrer kayıtlar oluşabilir hemde Google indexinde ayrıca sosyal medyada (twitter , Facebook ...) otomatik paylaşılmış olan başlıklar yenilenme sebebi ile ulaşılmaz olacaktır , Feedburner kullanıyorsanız buradaki eski başlık ID lerinden o başlıklarada ulaşılmayacaktır ... kısacası neresinden bakarsanız bakın bu gibi bir durumda 5-6 başlığın ID sini değiştirmek birçok olası Problemi ortadan kaldıracaktır Nette araştırdım lakin bu konuda herhangi bir bilgiye rastlamadım , gelelim nasılına ?
Başlık ID lerini Tek tek Elle editlemek
Aşağıdaki resimde Hosttaki bir başlığın ID sini görüyorsunuz
Aşağıdaki de aynı başlığın Bilgisayarımda kurulu serverdeki ID si
Local deki anasayfada yeralan başlıkların farklı olan ID lerini Anasayfadakilere uyduracağımız için Bilgisayarımızda yeralan PhpMyadmin e giriş yapalım ve veritabanımızı seçip SQL tabına geçelim ;
1) wp_posts daki ID yi ve GUID değerini değiştirmek
Bunu iki farklı şekilde gerçekleştirebiliriz ilk yöntemde tek bir SQL komutu uygulayıp ID si değiştirilecek başlığı buldurtup sonrada içerisinden ID leri değiştirmek. İkinci yöntemde ise 3-4 SQL komutu ile bu işleri kolayca halletmek. Önce ilk yöntemi açıklayalım:
1. Şimdi veri tabanımda ID si 20121 olan başlığı bulacağım bunun için Aşağıdaki SQL komutunu kullandım
SELECT * FROM wp_posts WHERE id ='20121'
Bu sorgu bana ID si 20121 olan başlığı getirdi , burada düzenle kısmına tıklıyorum
2. Sonrasında ID kısmda yeralan 20121 rakamını 18883 yaptım
sonrasında kaydırma çubuğunu en dibe kaydırıp GUID değerini bulalım ve buradaki linkin sonundaki değeri de değiştirelim.
3. Son olarakta git butonuna basıyorum (Üstteki resimde işaretli)
Eğer Woprdpress daha önceden sildiğiniz başlığa kullanmak istediğiniz ID yi atamışsa (Ki bana göre bu WordPressin bir hatasıdır ve silinen bir başlığa ait ID leri veri tabanında Tutması Kötü kodlandığını gösterir (İlerde umarım düzeltirler) bu durumda aşağıdaki hatayı verecektir
Burada yapılması gereken şey basit ; Bu ID yi içeren başlığı veritabanında bulup silmek (ilk kullandığımız SQL sorgusunda ID yerine 18883 gelecek ve bulduğu başlığı sileceğiz (Aşağıdaki resim)
Üsteki resimde çalıştırdığım sorgu sonucu bulduğum başlığın veritabanına 11.12.2014 te işlendiğini ve Post content (yani içeriğinin) boş olduğunu görüyorum - Allah bilir veritabanımda WordPress in hatası olan bu durumdan kaynaklı kaçbin adet girdi var herneyse işaretleyip sil ikonuna tıklayın hepsi bukadar (Hataya neden olan girdi silinmiş olacak) Şimdi üstte verdiğim 1,2,3. maddeleri tekrarlayın. ID ler sadece wp_posts kısmı ile ilişkili değildir bunların diğer tablolarda da bağlantıları olduğundan bunları da değiştireceğiz
2) wp_postmeta daki ID yi değiştirmek
Şimdi aşağıdaki sorguyu çalıştıralım
SELECT * FROM wp_postmeta WHERE post_id ='20121'
wp_postmeta tablosunda bulduğu ve Post_id si 20121 olanları tek tek 18883 haline getireceğiz (düzenle kısmına basıp rakamı değiştirip save edeceğiz)
3) wp_term_relationships tablosundaki ID yi değiştirelim
Aşağıdaki sorguyu çalıştıralım
SELECT * FROM wp_term_relationships WHERE object_id ='20121'
ve bulduğu 20121 rakamını düzenle kısmından 18883 olarak değiştirelim
Böylece Localde yeralan başlık ID sini host taki ID ye çevirmiş olduk. Gel gelelim buhaliyle başlığa yapılmış olan yorumların hiçbirisi görünmeyecektir. bu sebepledirki eğer varsa başlığa ait yorumların ID lerini de değiştirmemiz gerekir.
4. wp_comments Tablosundaki yorum ID lerini değiştirelim
Başlık yorumları görünsün diye bu başlığa bağlı yorum varmı onu bulalım bunun için aşağıdaki SQL sorgusunu kullanacağız
SELECT * FROM wp_comments WHERE comment_post_ID ='44168'
Üstte örneklerini gördüğümüz şekilde bulduğu ID leri tek tek editleyebiliriz. Üstteki SQL komutlarını toptan verecek olursak:
SELECT * FROM wp_posts WHERE id ='44168' SELECT * FROM wp_postmeta WHERE post_id ='44168' SELECT * FROM wp_term_relationships WHERE object_id ='44168' SELECT * FROM wp_comments WHERE comment_post_ID ='44168
Üstteki ilk komut hem ID hemde GUID değişikliği için kullanılmaktadır.
Başlık ID lerini SQL Sorgularıyla topluca Editlemek
Üstteki elle tek tek editleme işlemi hem zahmetli hemde birden fazla başlık ID si değişeceği zaman aşırı zaman kaybına sebep olabilir , ilaveten hata yapma olasılığıda yüksektir bu sebeple aşağıdaki SQL sorgularında Eski ve yeni ID lari değiştirip MYSQL den çalıştırarak işlemleri otomatik olarak yaptırtabilirsiniz.
UPDATE wp_posts SET id = "yeni_id" WHERE id = "eski_id";
UPDATE wp_posts SET id = "48773" WHERE id = "44168"; UPDATE wp_posts SET guid = "https://www.sordum.net/?p=48773" WHERE guid = "https://www.sordum.net/?p=44168" UPDATE wp_postmeta SET post_id = "48773" WHERE post_id = "44168"; UPDATE wp_term_relationships SET object_id = "48773" WHERE object_id = "44168"; UPDATE wp_comments SET comment_post_ID = "48773" WHERE comment_post_ID = "44168";
Üstteki tüm anlatılanları ID sini değiştirmek istediğiniz diğer başlıklara da uygulayınız. Velociraptor çalışmasıdır Lütfen kayak belirmeden kullanmayınız.
- WordPress te istenilen bir başlığı yedekleme / taşıma Burada
- WordPress Sitenizin Domain Adresini Kolayca Değiştirin Burada
- WordPress te Kalıcı bağlantı ayarları Burada
- WordPresste son satır öncesine reklam ekleme Burada
- WordPress te databank (Veritabanı) temizligi Burada
konu güzel lakin aradığım benim post değil kategori idlerini nasıl değiştirirriz
Umarım faydalı olur. bazen bu tarz çalışmalar sunacağız.
harika bir bilgi . Bir gün lazım olur diye hemen linki kaydettim.