如何用XMLRPC编辑特征图像?

时间:2017-07-11 作者:cooldude101

我在任何地方都找不到任何关于我需要准确提供哪些数据的信息。当我试图用缩略图读取我的一篇帖子中的数据时,我已经得到了这个信息,但你不必输入所有这些信息来添加特色图像:

  thumbnail: 
       { attachment_id: \'360\',
         date_created_gmt: 2017-07-11T04:51:15.000Z,
         parent: 245,
         link: \'http://xxxxxxxxxxxx.org/wp-content/uploads/2017/07/japanese-rice-bowl-pottery.jpg\',
         title: \'japanese-rice-bowl-pottery.jpg\',
         caption: \'\',
         description: \'\',
         metadata: [Object],
         type: \'image/jpg\',
         thumbnail: \'http://xxxxxxxxxxxx.org/wp-content/uploads/2017/07/japanese-rice-bowl-pottery-150x150.jpg\' } }
我试图使用此代码发布节点。js公司

client.editPost(posts[0].id, {thumbnail : { thumbnail : "http://xxxxxxxxxxxxx.org/wp-content/uploads/2017/07/japanese-rice-bowl-pottery-150x150.jpg" } }, function( error ) {})

2 个回复
SO网友:TayloeD

为了使您的帖子具有默认图像,您需要设置帖子缩略图。在执行此操作时,您需要设置媒体的ID,但这并不明显。

我的大部分工作都是用Python完成的,因此对我来说,以下内容很有帮助:

Step 1. 获取所有媒体的列表,以便了解ID

##
## Retrieve a list of media

# curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/posts
import json
import pycurl
import re
from io import BytesIO
import pandas as pd
import datetime
import urllib3


wpUrl = "https://MyWordPRessSite.COM</wp-json/wp/v2/media?page={}"

bContinue = True
page=1
while bContinue == True:
    buffer = BytesIO()
    c = pycurl.Curl()
    c.setopt(pycurl.SSL_VERIFYPEER, 0)
    c.setopt(c.WRITEDATA, buffer)
    c.setopt(c.HTTPHEADER,[\'Content-Type: application/json\'])

    myUrl = wpUrl.format(page)
    #print(myUrl)
    c.setopt(c.URL,myUrl)
    c.perform()

    page+= 1
    if buffer != None:
        myData = json.loads(buffer.getvalue())
        for foo in myData:
            print("MediaID ={}, caption = {}, alt_text={}".format(foo["id"], foo["caption"], foo[\'alt_text\']))
            #print(foo)
        if len(myData) <= 0:
            bContinue = False
    else:
        bContinue = False
    c.close()
Step 2. 使用正确的媒体ID创建帖子

######################################################
# Create A Post
######################################################
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import NewPost

#authenticate
wp_url = "https://info-qa.cloudquant.com/xmlrpc.php"
wp_username = "My_User_ID_on_WP"
wp_password = "My_PWD_on_WP"


wp = Client(wp_url, wp_username, wp_password)

#post and activate new post
post = WordPressPost()
post.title = \'3 Post\'
post.content = \'<h1>heading 1</h1>Tayloe was here<br><small>here too!</small><p>New para.\'
post.post_status = \'draft\'
post.thumbnail = 50  # The ID of the image determined in Step 1
post.slug = "123abc"
post.terms_names = {
  \'post_tag\': [\'MyTag\'],
  \'category\': [\'Category\']
}
wp.call(NewPost(post))

SO网友:cooldude101

我发现了我的问题,只是把它传给别人,以防有人用谷歌搜索到这个。

你需要像这样传递图像id

{缩略图:123}

将123替换为您的图像id。

我想所有额外的数据都会自动填充。

结束

相关推荐

WooCommerce REST API终结点不存在

注意:这个问题是我发布的问题的逐字副本a week ago there. 我尝试过其他问题的各种解决方案,但都没有成功,直到有人建议我在这里的WP专用SO上提问。在安装了新的Wordpress 4.8实例和最新版本的WooCommerce 3.0.8之后,我们正在尝试了解如何使用WooCommerce REST API。从他们的文档来看,这似乎非常简单,但我们在每个端点上只得到404个。我们对Wordpress和WooCommerce都是新手,因此我们阅读的不同内容可能会产生误导,并且经常相互矛盾。。。文