2012-10-11 135 views
1

我想開發一個Python的腳本,需要發佈內容到wordpress博客,問題是我需要設置一個圖像作爲該文章的縮略圖,我不知道如何做到這一點。如何使用xmlrpclib Python庫向縮略圖添加縮略圖?

這是一個代碼示例才能發佈內容(沒有縮略圖),以WP:

import xmlrpclib 

user = 'username' 
passwd = 'password' 
server = xmlrpclib.ServerProxy('http://vizible.wordpress.com/xmlrpc.php') 

blog_id = 0 
title = 'test title' 
content = 'test content, from python' 

blog_content = { 'title' : title, 'description' : content } 
categories = [{'categoryId' : 'programming', 'isPrimary' : 1}] 

post_id = int(server.metaWeblog.newPost(blog_id, user, passwd, blog_content,0)) 
server.mt.setPostCategories(post_id, user, passwd, categories) # not work 
server.mt.publishPost(post_id, user, passwd) 

搜索在網絡上我發現了另一個庫內容發佈到WordPress的,我試圖this example code,但它沒沒有工作。

¿你知道另一個Python的庫與Wordpress進行交互,它接受縮略圖嗎?

謝謝:)

編輯

好了,現在的代碼上傳圖像到我的wordpress庫,但我不會設置是視後的縮略圖。

這是代碼:

#!/usr/bin/env python 

import xmlrpclib 
import urllib2 as urllib 

user = 'username' 
passwd = 'pass' 
server = xmlrpclib.ServerProxy('http://miweb.com/xmlrpc.php') 
blog_id = 0 

fileimg = urllib.urlopen('image_url') 
fileimg = xmlrpclib.Binary(fileimg.read()) 

data = {'name':'mqdefault.jpg', 'type':'image/jpeg', 'bits':fileimg} 

upload = server.wp.uploadFile(blog_id, user, passwd, data) 

content = {'post_title':'title', 'post_content':'content', 'post_thumbnail':upload['id']} 

post_id = server.wp.newPost(blog_id, user, passwd, content) 

server.mt.publishPost(post_id, user, passwd) 

的問題是,即使內容[「post_thumbnail」]並上傳[「身份證」]是相同的號碼,當我將它張貼在我的WordPress博客沒有關係不顯示任何縮略圖,但是這是上傳到畫廊。

最後編輯: 我的主題顯示縮略圖作爲元,所以我不得不將它們添加到崗位作爲元信息。這對我更好,因爲我不需要在我的服務器中託管縮略圖。

最終代碼

#!/usr/bin/env python 

import xmlrpclib 

user = 'username' 
passwd = 'pass' 
server = xmlrpclib.ServerProxy('http://miweb.com/xmlrpc.php') 
blog_id = 0 

content = {'post_title':'prova1', 'post_content':'prova text', 'post_status':'published', 'custom_fields': [{'value': 'thumbnail url', 'key': 'thumb'}]} 

post_id = server.wp.newPost(blog_id, user, passwd, content) 

server.mt.publishPost(post_id, user, passwd) 

回答

2

可以使用WP *調用在XML-RPC接口來訪問WP,做特定的功能不止會把那些MetaWeblog的。

首先,您可以撥打server.wp.uploadFileserver.wp.getMediaLibrary上傳縮略圖或找到現有的縮略圖並獲取其ID。然後在content["post_thumbnail"]參數中使用此ID到server.wp.newPost

對於所有這些,WP API都有docs

+0

好的,謝謝,我會試試看。 – gcucurull

+0

感謝你我可以解決我的問題,但現在即使代碼工作我的帖子似乎沒有附加任何縮略圖。 – gcucurull

+0

也許很明顯......但是您是否檢查過您的主題是否支持/顯示縮略圖?你能創建一個帖子,根據用戶需求顯示一個嗎? – abeyer