這個問題我找了很多資料都沒有明說是如何解決,后來突發奇想得出我的解決方案如下,所以特此記錄一下:

object postId = blogService.NewPost(0,"admin","123456", new {
  post_title = "My post 20130711",
  post_content = "This is my post on 2013/07/13.",
  post_status = "publish",
  post_author = 1,
  terms = new {category = new[]{2}}//這個 2 是我新增的一個名叫“工作日志”的分類ID
});

由于 PHP 的解決方案如下

public function create_post( $title, $body )
{
$title = htmlentities( $title, ENT_NOQUOTES, 'UTF-8' );
$content = array(
'post_type' => 'post',
'post_status' => 'pending',
'post_title' => $title,
'post_content' => $body,
'terms' => array('category' => array( 18 ) ),
'comment_status' => 'closed',
); $params = array( 0, $this->username, $this->password, $content );
return $this->send_request( 'wp.newPost', $params );
}
我對PHP的認識只是知道它是一種面向對象的語言,其它的就一概不知了,所以我要如何將這 PHP 通過XML-RPC 轉到 C# 下用呢?
從這個問題讓我聯想到 PHP 的 array 可以是一個「對象」又是一個數組,而不象個別資料所說是 「字典類型」。實踐證明我的想法是對的,接下來就要測試發附件的功能了~~~~
 
 
 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
目录:

WordPress在3.4版本中加入了XML-RPC WordPress API系列的xml-rpc函数,这里使用Python作为说明的语言,调用这套接口发布包含分组(category)或者标签(tag)内容的时候,会碰到401错误

抱歉,文章类型不支持您的分类法。

对应于Wordpress源代码wp-includes/class-wp-xmlrpc-server.php中的原始错误为:

Sorry, one of the given taxonomies is not supported by the post type.

这个错误实际上是在调用Wordpress API时给出的分组信息错误,wp.newPost的文档中关于terms的定义是这样的:

WordPress terms 结构体

  • struct terms: Taxonomy names as keys, array of term IDs as values.
  • struct terms_names: Taxonomy names as keys, array of term names as values.

这里两个东西的定义很隐晦,但仔细想想还是能搞定的。

  • struct terms:Taxonomy names as keys, array of term IDs as values,这两个关键字(key, value)暗示着terms是一个字典类型的结构体,Taxonomy names作为关键字,term IDs数组作为对应的值。
  • struct terms_names: Taxonomy names as keys, array of term names as values,这两个关键字(key, value)暗示着terms_names是一个字典类型的结构体,Taxonomy names作为关键字,term names数组作为对应的值。

WordPress Taxonomy 是什么

Taxonomy简单来说是一种组织内容的方法,常用的taxonomy名称有

  • category‘(分类目录)
  • post_tag‘(标签)
  • link_category‘(链接分类目录)

Python中如何定义terms

在Post的结构体中如果定义了

'terms':{'category':[4]}

则表示这篇文章的分类目录ID是4,同样,可以使用

'terms_names':{'category':["Wordpress"]}

来表示这篇文章的分类目录为Wordpress.

終于解決调用wordpress 4.3 xmlrpc api 发布包含分类的文章时返回“抱歉,文章类型不支持您的分类法”错误的問題的更多相关文章

  1. the project already contains a form or module named pcm001怎麼解決

    the project already contains a form or module named pcm001怎麼解決 菜单Project -> Remove from project.. ...

  2. 优化のzen cart调用WordPress

    zen cart调用wordpress博客系统文章的方法 zencart根目录下新建blog 解压wp进去然后 wp-admin 安装 数据库共用 之前将wordpress和zencart整合起来 是 ...

  3. 解決從Ubuntu 12.04升級至12.10之後的Unity顯示問題

    FROM: http://blog.sina.com.cn/s/blog_97ef3ff4010190pe.html#bsh-75-306370781 今天中午經過系統自帶的“檢查更新”軟件從Ubun ...

  4. 如何解決 Homebrew Update 失敗?

    相信許多用 MAC 系統的程式設計師.工程師們都有用 Homebrew 這個超好用的 Open Source 套件管理程式吧? 如果沒有的話,你可以透過以下的指令安裝: ruby -e "$ ...

  5. jQuery Validate + Ckeditor 驗證 textarea 解決方式

    jQuery Validate + Ckeditor 驗證 textarea 解決方式 html <textarea name="content" id="cont ...

  6. 何解決 LinqToExcel 發生「無法載入檔案或組件」問題何解決 LinqToExcel 發生「無法載入檔案或組件」問題

    在自己的主機上透過 Visual Studio 2013 與 IISExpress 開發與測試都還正常,但只要部署到測試機或正式機,就是沒辦法順利執行,卡關許久之後找我協助.我發現錯誤訊息確實很「一般 ...

  7. 記錄一次CRS-0184: Cannot communicate with the CRS daemon的解決

    1. 描述: 使用crs_stat –t 命令查看rac服務,直接報CRS-0184: Cannot communicate with the CRS daemon.錯誤 但是奇怪的是我們的DB是沒有 ...

  8. Oracle12c client安裝報錯[INS-20802] Oracle Net Configuration Assistant failed完美解決

    Doc ID 2082662.1 1.錯誤碼 Installation Of Oracle Client 12.1.0.2.0 (32-bit) Fails With An Error Message ...

  9. 【转载】详解CreateProcess调用内核创建进程的过程

    原文:详解CreateProcess调用内核创建进程的过程 昨天同学接到了腾讯的电面,有一题问到了CreateProcess创建进程的具体实现过程,他答得不怎么好吧应该是, 为了以防万一,也为了深入学 ...

随机推荐

  1. 【monkey】mokey常用命令<一>

    monkey测试的相关的原理 monkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常.当Monkey程序在模拟器或设备运行的时候,如果 ...

  2. fatal error: mysql.h: No such file or directory

    在ubuntu系统下安装mysql之后,和数据库连接的时候,出现如下错误:fatal error: mysql.h: No such file or directory 是因为缺少链接库,执行如下命名 ...

  3. 【整理总结】目录 - 代码沉淀 - 常见Nuget包介绍及使用

    为了团队项目或者后期代码维护方便,现在项目已经极致推荐使用Nuget管理第三方类库了,所以下面列举的类库,都会在Nuget上获取到.目录排序不分先后,如果查找困难,请使用 ctrl + F 重要提示: ...

  4. 031:Cetus sharding

    目录 一.主机环境 二.搭建环境 1.准备环境 三.Cetus安装 1.下载包和安装依赖包 2.Cetus安装 1.安装说明 2.安装实施 四.Cetus配置 1.创建和修改配置文件 2.启动cetu ...

  5. 需登录账号与密码的网页爬取demo

    public static String connect(String dataUrl){ String result = null; try { HttpClient httpclient = ne ...

  6. 【理论】python使用celery异步处理请求

    Flask中使用celery队列处理执行时间较长的请求. 一. 安装celery pip install celery flask redis 二. celery简介 Celery是个异步分布式任务队 ...

  7. 温故而知新-面向对象的PHP

    1 类的多态 不同的类对同一操作可以有不同的行为. 比如自行车和汽车都有移动这个成员函数行为, 那么自行车类可以移动,行为和汽车的移动行为肯定不同. 2 析构函数不能有参数 3 __set和__get ...

  8. upstream prematurely closed connection while reading response header from upstream

    upstream prematurely closed connection while reading response header from upstream nginx配置uwsgi的时候  ...

  9. centos7 安装 openvswitch

    1.安装依赖包:   yum -y install make gcc openssl-devel autoconf automake rpm-build redhat-rpm-config yum - ...

  10. readonly const

    readonly:只读域,只能在初始化--声明初始化或构造器初始化--的过程中赋值,其他地方不能进行对只读域的赋值操作,否则编译器会报错.只读域可以是实例域也可以是静态域.只读域的类型可以是C#语言的 ...