wordpresslib将图像附加到帖子

时间:2015-06-02 16:38:19

标签: python wordpress

查看wordpresslib提供的示例,它非常直接地介绍了如何将图像上传到媒体库。但是,图像的附件看起来好像从未完成。有没有人成功附上图片?

#!/usr/bin/env python

"""
    Small example script that publish post with JPEG image
"""

# import library
import wordpresslib

print 'Example of posting.'
print

url = raw_input('Wordpress URL (xmlrpc.php will be added):')
user = raw_input('Username:')
password = raw_input('Password:')

# prepare client object
wp = wordpresslib.WordPressClient(url+"xmlrpc.php", user, password)

# select blog id
wp.selectBlog(0)

# upload image for post
# imageSrc = wp.newMediaObject('python.jpg')

# FIXME if imageSrc:

# create post object
post = wordpresslib.WordPressPost()
post.title = 'Test post'
post.description = '''
Python is the best programming language in the earth !
No image BROKEN FIXME <img src="" />
'''
#post.categories = (wp.getCategoryIdFromName('Python'),)

# Add tags
post.tags = ["python", "snake"]

# do not publish post
idNewPost = wp.newPost(post, False)

print
print 'Posting successfull! (Post has not been published though)'

WordPressPost类:

class WordPressPost:
    """Represents post item
    """ 
    def __init__(self):
        self.id = 0
        self.title = ''
        self.date = None
        self.permaLink = ''
        self.description = ''
        self.textMore = ''
        self.excerpt = ''
        self.link = ''
        self.categories = []
        self.user = ''
        self.allowPings = False
        self.allowComments = False
        self.tags = []
        self.customFields = []

    def addCustomField(self, key, value):
        kv = {'key':key, 'value':value}
        self.customFields.append(kv)

1 个答案:

答案 0 :(得分:2)

Wordpress将图像保存为website.com/wp-content/uploads/YEAR/MONTH/FILENAME

将上述格式的简单图片标记添加到post.description,以显示帖子上的图片。

其中YEAR是4位数字格式的当前年份(例如2015年)

MONTH是当前月份的前导零(例如01,02,... 12)

FILENAME是通过imageSrc = wp.newMediaObject('python.jpg')

提交的文件名

示例文件名:website.com/wp-content/uploads/2015/06/image.jpg

以下是我发布图片的方式:

import time
import wordpresslib
import Image
from datetime import datetime

time = datetime.now()

h = str(time.strftime('%H'))
m = str(time.strftime('%M'))
s = str(time.strftime('%S'))
mo = str(time.strftime('%m'))
yr = str(time.strftime('%Y'))

url = 'WORDPRESSURL.xmlrpc.php'
wp = wordpresslib.WordPressClient(url,'USERNAME','PASSWORD')
wp.selectBlog(0)
imageSrc = wp.newMediaObject('testimage'+h+m+s'.jpg') #Used this format so that if i post images with the same name its unlikely they will override eachother

img = 'http://WORDPRESSURL/wp-content/uploads/'+yr+'/'+mo+'/testimage'+h+m+s+'.jpg'

post=wordpresslib.WordPressPost()
post.title='title'
post.description='<img src="'+img+'"/>'
idPost=wp.newPost(post,true)