web-dev-qa-db-ja.com

分類法からの用語を含む投稿のRSSフィード

私はこれに対する答えが私が昨日尋ねたこの質問に関連することを想像します。

分類法のすべての用語に対するカスタム分類法WP_Query

特定の分類法からのエントリが割り当てられているすべての投稿を含むRSSフィードを出力したいと思います。私がすることができます:

http://blog.example.com/feed/?taxonomy=taxonomy-name&term=test-term

特定の用語に割り当てられたすべての投稿を返すには、その分類法のすべての用語からのすべての投稿を表示するフィードが必要です。

ありがとう、Dave

4
Dave Morris

ソリューション

WordPress 3.1分類法フィードプラグイン(必須)

あなたのサイトにその必須のプラグインを入れて、リクエストしてください:

http://blog.example.com/feed/?taxonomy=taxonomy-name

あなたがそれを求めたように。

詳細な情報

Wordpressは複数の設定でフィードを要求します。 フィードURLの検索(Wordpress Codex) は可能なことを示します。標準フィード(投稿)の横には、次のものがあります。

  • コメント - http://example.com/?feed=commentsrss2
  • カテゴリ - http://example.com/?cat=42&feed=rss2
  • タグ - http://example.com/?tag=tagname&feed=rss2
  • 著者 - http://example.com/author/authorname/feed/
  • 検索 - http://example.com/?s=searchterm&feed=rss2

(注:RSS2はWordpressのデフォルトフィードフォーマットです)

ご覧のとおり、分類法の投稿に対するフィードのクエリに関するURLの例はありません。

一般に、フィードは他のブログ投稿やコメントの並びとまったく同じです。つまり、WP_Queryを実行してからフィードテンプレートでループを実行します。

WP_Queryは、デフォルトでtaxonomyリクエストパラメータをサポートしています。その要求パラメータは codexに文書化されている種類のもの です。そのセクションには2つの問題があります。私がその文書にリンクしている点は、その価値が分類法スラッグと比較されることを示すことです。

そのため、WordPressがあなたがやりたいことを簡単に実行できるかどうかを調べるには、特定のカテゴリを要求するときにフィードがすでに分類法をサポートしているかどうかを調べる必要があります。私はすでにこれをしました、これは事実ではありません。追加のリクエストクエリvarが代わりに使用されます:category_name

だから今のところ唯一の興味深い部分はtaxonomyリクエストパラメータをさらに利用できるということです、そしてwordpressがフィードデータベースデータを探すときそれは分類学クエリモードではなく、何らかのレガシーカテゴリクエリモードにあります。分類法を探しているので、それは少し残念です。

ちょっと息をのむ

必要だから。ここでのWordpressの問題は、あなたが今ソフトウェアの最も複雑な内なる部分にぶつかり始めたということです。パッケージ内には、コードのデバッグのような非常に複雑な関数がいくつかあります。理解するには、次のステップを実行する必要があります。

そのようにしている間、あなたは物事があなたがやりたいことをさせるために外出中に値とコールバックを操作するのに利用できるフィルタまたはフックを見つけることが十分に幸運であるかもしれません。しかし問題は、あなたがいじくり回すほど、物事を破る危険性が高くなるということです。

だから芸術はそれほど侵略的ではない場所である変更を加える場所を見つけることです。

分類法のサポートを追加する

上記のように、分類法のサポートはWP_Queryに直接追加する必要があります。そのためには、その関数にフックして値を変更します。

しかし、分類法についてまったく問い合わせることはできますか?それに関する3.1以前の情報はあまり見つかりませんでした。 WordPress 3.0でもカスタム分類法をサポートしているようですが、リクエストパラメータで特定の分類法に含まれる投稿をクエリすることはできませんでした。

私の3.1テストベッドでも、リクエストパラメータを分類法のクエリにマッピングすることができませんでした。ですから3.1でもこれは簡単にはできません。

私がこれまでに見たことができる最も見栄えの良い解決策はWP_Queryにフックして WordPress 3.1ベースのカスタム分類クエリ を利用することです。ここでいくつかのモックアップコード:

$myquery['tax_query'] = array(
    array(
        'taxonomy' => 'category',
    ),
);
query_posts($myquery);

私たちは分類法についてのみ質問しているので、これはうまくいかないかもしれないと私は嗅ぐ。詳細に確認しましょう。

WP 3.1分類のみのカスタム分類クエリ

調べるために、私はpre_get_postsにフックして上に示されたWordPress 3.1カスタム分類クエリを注入する簡単なスクリプトを実装します。分類法として、私はデフォルトのものの一つを使いました:category(あなたは ここで全てのデフォルトの分類法を見つけることができます )。それはたくさんのPHP警告を吐き出しますが、これはこの機能がどういうわけか脆弱であることを示しています。だから、警告されて、物事が箱から出して動くことを期待しないでください。

とにかく私はこれをテストし、そして話を終わらせるために長い話をするために、私はただすべての用語をつかみそしてそれからそれらを質問に加えるという解決策を見つけました。これが私がこれまでに使った私のmu-pluginです:(上に掲示された)、私のために仕事をします。

6
hakre

または単にURLを使用してください:feed://www.myurl.org/feed?post_type = news&category_name = MyCategory

1
alexndm