Django ile Wordpress'e bağlanmak
// yorumlar // python , django , wordpressBirkaç gün önce bir arkadaş sormuştu Django ile Wordpress'e nasıl bağlandığımı(bkz arşiv sayfam. Yaptığım şey, wordpress için bir model oluşturup, mümkün olduğunca wordpress veritabanını kopyaladım.
Kendi sitem için sadece wp_posts tablosunu aktardım, fakat tüm wordpress'de aktarılabilir biraz daha uğraşılarak. Bu yöntemle wordpress'e yazı bile girebilirsiniz aslında. Ben sadece yazıları çekiyorum.
wp_posts tablosu(wordpress 2.9.1 için) şu alanları içeriyor:
field type ---------------------------- id int(11) post_date datetime post_title varchar(100) post_content longtext post_excerpt varchar(100) post_status varchar(100) guid varchar(100) comment_count int(11) post_type varchar(20)
Bunu Django ORM'ine şu şekilde çevirdim(tam olarak aynısı olmasa da, eğer sadece yazıları okuyacaksanız gayet güzel çalışıyor, yazı eklemek için denemedim):
# models.py from django.db import models class Posts(models.Model): post_date = models.DateTimeField() post_content = models.TextField() post_title = models.CharField(max_length=100) post_content = models.TextField() post_excerpt = models.CharField(max_length=100) post_status = models.CharField(max_length=20) guid = models.CharField(max_length=100) comment_count = models.IntegerField() post_type = models.CharField(max_length=20)
Daha sonra views.py dosyamdan şu şekilde çekiyorum:
from wp.models import Posts def wp(): return [post for post in Posts.objects.order_by("-post_date") if post.post_type == "post" and post.post_status == "publish"]
Bundan sonrası normal Django işlemleri. wp() fonksiyonunu istediğim sayfaya gönderdikten sonra(render_to_response ile mesela) aşağıdaki template kodları ile wordpress yazılarıma ait verileri çekiyorum:
{% for yazi in wp %} {{ yazi.post_title }} *baslik* {{ yazi.post_date }} *tarih* {{ yazi.post_content }} *icerik* {{ yazi.coment_count }} *yorum sayisi* {% endfor %}
Tabii bunları çekerken bazı builtin template taglardan yararlanıyorum. Bu arada, Django, 1.2 sürümüyle beraber artık birden fazla veritabanına bağlanabiliyor, wordpress yazılarınızı çekmek istiyorsanız bunu kullanabilirsiniz(ben aynı veritabanını kullanıyorum.
blog comments powered by Disqus

