Tüm Wordpress kategorilerini (yazı yok, sadece kategoriler) bir blogdan diğerine aktarmak istiyorum. Bunu nasıl yapabilirim ?
Tüm Wordpress kategorilerini (yazı yok, sadece kategoriler) bir blogdan diğerine aktarmak istiyorum. Bunu nasıl yapabilirim ?
Yanıtlar:
Bu cevap aslında Ünsal'ınkiyle aynı, ama biraz ayrıntı vermek istiyorum çünkü doğru olmasına rağmen cevabı bana yardımcı olmadı (sadece geçmişte ne yaptığımı hatırlamaya çalışıyordum, okumalıydım daha dikkatli bir şekilde anladım, ama diğerleri için tam bir açıklama yararlı olacağını düşünüyorum).
Tüm kategori hiyerarşisini dışa aktarmak için "Tüm İçerik" i dışa aktarmanız gerekir
Başka herhangi bir seçenek size tam verileri vermeyecektir (örneğin, tüm kategoriler çoğunlukla etiketli bir yayını dışa aktarma işe yarar, ancak hiyerarşik olan sınıflandırmalarla ilgili tüm ebeveynlik / hiyerarşi verilerini kaybedersiniz).
"Tüm İçerik" i dışa aktardığınızda, ortaya çıkan dosyada terimlerinizle ilgili verilerin bulunduğu bir bölüm bulunur. Dosyaya bakarsanız, yazarlardan sonra ve "öğeler" den (yani mesajlar) önce bulmak yeterince kolay olmalıdır.
Bu bir seçenekse içe aktarabilir ve içeriği silebilirsiniz *
Tam dosyanın içe aktarılması, sınıflandırma hiyerarşisini mükemmel bir şekilde çoğaltır, ancak aynı zamanda tüm sayfaları ve yayınları da içe aktarır. Çok fazla yoksa sadece elle silmeyi düşünün. Toplu olarak yaparsanız ve yüzlerceden az varsa bu kadar uzun sürmez (varsayılanları daha fazla göstermek için Yazıları Düzenle ekranındaki Ekran Seçeneklerini kullanabileceğinizi ve böylece aynı anda toplu olarak daha fazla düzenleme yapabileceğinizi unutmayın).
Hepsini kaldırmak için çok fazla içeriğiniz varsa, tutmak istediğiniz terimler dışında her şeyi kaldırmak için WXR dosyasını elle düzenlemeniz gerekir.
İçeriği kaldırmak için WXR dosyasını düzenleme
Bu biraz zor olabilir, ancak gerçekten dosyanın içeriğine bakarsanız, her bir öğenin ne yaptığını anlamak zor değildir. XML, etiketli HTML gibidir, bu yüzden dikkat edilmesi gereken ana şey, açılış etiketinden ayrılırken bir kapanış etiketini silmemenizdir.
WXR'de 1-3 tür terim tanımı, biri Kategoriler için, biri "etiketler" ve diğeri "terimler" için olduğunu göreceksiniz. "Özel sınıflandırmalar" terimler kullanılırken eski moda kategoriler ve etiketler kendi özel biçimlerine sahiptir.
KATEGORİ ÖRNEĞİ
<wp:category><wp:term_id>8880</wp:term_id><wp:category_nicename>runner-up-proposals</wp:category_nicename><wp:category_parent>second-round-proposals</wp:category_parent><wp:cat_name><![CDATA[Runner-up Proposals]]></wp:cat_name></wp:category>
ETİKET ÖRNEĞİ
<wp:tag><wp:term_id>122</wp:term_id><wp:tag_slug>ave-maria</wp:tag_slug><wp:tag_name><![CDATA[Ave Maria]]></wp:tag_name></wp:tag>
ÖZEL TAKSONOMİ DÖNEM ÖRNEĞİ
<wp:term><wp:term_id>8579</wp:term_id><wp:term_taxonomy>gv_tools</wp:term_taxonomy><wp:term_slug>digital-video</wp:term_slug><wp:term_parent></wp:term_parent><wp:term_name><![CDATA[Digital Video]]></wp:term_name></wp:term>
Yapmak istediğiniz şey, bu kategori / etiket / terim etiketleri dışındaki tüm içeriği WXR dosyasından kaldırmaktır. Yani wp: önce gelen yazar etiketleri ve sonra gelen birçok öğe etiketi. En önemlisi: En alttaki kapanış / kanal ve / rss etiketlerini kaldırmayın! Bunlar olmadan XML doğrulanmaz.
DAİMA düzenlenmiş dosyanızı canlı bir web sitesinde kullanmadan önce içe aktarmanın sonuçlarını test edeceksiniz. Yerel olarak yeni bir yüklemeye aktarmayı deneyin ve tamamen başarısız olup olmadığını görün, ardından wp-admin'de kategori listesi ekranını kontrol edin ve her şeyin tam olarak beklediğiniz gibi olduğundan emin olun.
İyi şanslar!
Bu sorunu 2 sorgu ile çözdüm.
Sanırım bu en iyi yol değil, ama en güvenli olanı değil . Ayrıca, aynı veritabanında çalıştığınızı varsayar (bu durumda kolayca sorguyu dışa aktarabilir ve daha sonra başka bir db'ye aktarabilirsiniz).
Bir üzerinde kullandım boş wordpress kurulumu:
1 - Kategorinin şartlarını içe aktarın:
INSERT INTO newwp_terms
SELECT te.*
FROM oldwp_terms te
JOIN oldwp_term_taxonomy ta
ON te.term_id = ta.term_id
WHERE ta.taxonomy = 'category'
;
2 - Kategorileri içe aktarma ilişkileri ve açıklamaları
INSERT INTO newwp_term_taxonomy
SELECT term_taxonomy_id,term_id,taxonomy,description,parent,0
FROM oldwp_term_taxonomy ta
WHERE ta.term_taxonomy_id IN
(
SELECT ta2.term_taxonomy_id
FROM oldwp_terms te
JOIN oldwp_term_taxonomy ta2
ON te.term_id = ta2.term_id
WHERE ta.taxonomy = 'category'
)
;
[A] nyway newwp_
, içine almak istediğiniz oldwp_
tabloyu belirtirken kaynak tabloyu belirtir
Yalnızca kategorileri (veya genellikle sınıflandırmaları) dışa aktaramazsınız. Araçlar / Dışa Aktar ile tüm içeriği dışa aktarmanız yeterlidir ve xml'deki kategoriler dışındaki içeriği silebilirsiniz.
Buradaki son hedefin nedir? Bir blogdan diğerine kategori listesi mi almak istiyorsunuz? Veya bir kategorideki veya kategorilerdeki tüm içeriği başka bir WordPress kurulumuna taşımaya mı çalışıyorsunuz?
Biraz çirkin, ancak tüm içeriği dışa aktarabilir, ardından kategorilerdeki içeriği silebilir veya istemediğiniz kategorileri silebilirsiniz. Muhtemelen hedefinize ulaşmanın daha hızlı yollarından biri olacaktır.
Veritabanı tablolarına erişiminiz varsa, wp_term_relationships, wp_term_taxonomy, wp_terms tablolarının mysql dökümünü dışa aktarabilir ve bunları yeni wordpress kurulumuna aktarabilirsiniz. Bunu 300'den fazla kategoriye sahip iki WP kurulumu arasında yaptım ve iyi çalıştı.