2017-10-28 38 views
0

カテゴリ別にカスタム投稿タイプのWordPress投稿を検索するには、文書hereに従っています。 PHPにはこの質問に対する答えがありますが、私がPythonで見つけることはできません。私が何かが欠けていない限り、関数は期待どおりに機能しません。私は次のように起動した場合:カスタム投稿タイプのWordPress投稿をPythonのカテゴリ別カテゴリ別に取得するには

from wordpress_xmlrpc import Client, WordPressPost 
from wordpress_xmlrpc.methods.posts import GetPosts 
from wordpress_xmlrpc.methods import posts 
from wordpress_xmlrpc import WordPressTerm 

wp = Client('http://www.mywebsite.info/xmlrpc.php', 'myusername', 'mypassword') 

その後、これは成功した問題のカテゴリのリストを返します。

categories = wp.call(taxonomies.GetTerms('category')) 

これが成功したカスタムポストタイプの(最初の10)の記事のリストを返します。私は照会しようとしている:

posts = wp.call(posts.GetPosts({ 'post_type': 'my-custom-post-type' })) 

をしかし、私はそれに追加した場合、次の

posts = wp.call(posts.GetPosts({ 'post_type': 'my-custom-post-type', 'terms_names': { 'category' :['my-category',]} })) 

「terms-names」フィルタを使用しないクエリと同じ結果が得られます。追加用語は完全に見落とされていたようです。

posts = wp.call(posts.GetPosts({ 'post_type': 'my-custom-post-type', 'terms': { 'category' :[72]} })) 

次のような

posts = wp.call(posts.GetPosts({ 'post_type': 'my-custom-post-type', 'terms_names': { 'category' :['nonsense-word',]} })) 

私も試した別の方法:私は、クエリに存在しないカテゴリを追加した場合実際には、それは以下のような例外/エラーを返さずに同じ結果を与えます...同じ結果で。私はここで何を理解していないのですか?

答えて

1

ドキュメントを読むと、複雑なクエリの例がないようです。私がGitHubリポジトリに行ったとき、これはWordPress 3.5までテストされた開発者の個人的なプロジェクトであることがわかりました(現在は4.9が近づいています)。最後のコミットは2年前です。 WordPressはPHPで書かれています。私は、著者がPythonのWPクエリの全機能を実装する手間を経ずに済んだと思います。可能であれば、WordPress Rest APIを使用します。

返信された投稿データにカテゴリ情報が含まれている場合は、投稿タイプで検索できるようになっているため、フィルタを自分で行うことができます。

+1

興味深いことに、それは私の感覚でした。先端に感謝します。フィルタを自分で行うことで、探している用語の検索された投稿のグループを手作業で繰り返すことを提案していますか?私にとっては、これはサーバーのようなものではないようでした.1つの正しいものを見つけるために何百もの投稿を検索する必要があります。いずれにしても、Rest APIを使用して調べます。 – NFB

関連する問題