RSSですべての投稿を取得する


10

WordPressの設定で定義されている最新のX件以上の投稿にどのように/アクセスできるか疑問に思っています。RSSを介してすべてのブログコンテンツを移行するプラグインを見てきましたが、その方法を確認するために何も考えていません。

基本的に私は数百のWordPressブログを管理しており、クライアントのためにニュースレタージェネレーターを構築しています。彼らは、いくつかの投稿を選択し、抜粋をニュースレターの本文に表示できるようにしたいと考えています。サイトは複数のサーバーに分散しており、ニュースレタージェネレーターはCRMの上に構築されているため、直接のデータベースクエリは困難です。RSSが最もクリーンですが、一度に10を超えるアクセス方法(管理者で10が設定されている場合)を理解できないようです。

何か案は?


「管理者に10が設定されている」とはどういう意味ですか?
gcb 2011

回答:


5

Codexには、post_limitsフィルターを使用して管理者に設定されたフィードの量をオーバーライドする方法のサンプルスニペットがあります。

if (isset ($query->query_vars['feed']) and ($query->query_vars['feed'] == 'ics')) 
    add_filter('post_limits','__return_empty_string'); 

http://codex.wordpress.org/Function_Reference/query_posts#Usage_Tips


1
これはオプションかもしれませんが、700以上のサイトでテーマコードを変更する必要がないようにしたいと思っていました。
bhamrick 2010

1
これが私がやったことです。私のサイトは少数のWordPress-Muインストールに分散しているので、文字通り何百ものサーバー上のWordPressの何百もの異なるインスタンスではありません。問題は、私がこの機能を必要とするのは、各Muインストール内のいくつかのサイトだけであるということでした。そこで、これを行うプラグインを作成し、必要なサイトでそのプラグインをアクティブにするためにデータベースを更新するスクリプトを作成しました。できました。助けてくれてありがとう。
bhamrick 2010

21

投稿を取得する方法は、ニュースレタージェネレーターでrssフィードのさまざまなページを呼び出すことです。これは、さまざまなWordpressインストールを更新する必要がない安全なアプローチです。

yourwebsite.com/feed- >最後の10件の投稿を取得

yourwebsite.com/feed/?paged = 2- >次の10件の投稿を取得

等々。


4

残念ながら、あなたがしようとしていることは、一般的にほとんどのコミュニティで眉をひそめています。あなたが求めているのは次のとおりです。

  • デフォルトの数(最近の投稿)を超える数をリモートで取得する方法
  • おそらくサイトのすべての公開された投稿を取得する
  • (RSSを使用して)サイト自体と直接対話することなく

これは、ブログからコンテンツをスクレイピングして、元の作成者の許可なしに再公開するために一般的に使用される手法です。それが、私がそれを一般的に嫌うと言う理由です。ほとんどのブログ作成者は、優れたコンテンツの開発に多くの時間とエネルギーを費やしているため、サードパーティが自分のサイトにSEOクレジットを追加するためのハードワークを容易に活用できるようにするのは...まあ...簡単です。

とはいえ、当面は700を超えるサイトからコンテンツを取得する正当な理由があると仮定します。その場合は、RSSではなく、別のプログラムによる方法をお勧めします。これらすべてのサイトの正当なログイン情報がある場合(つまり、それらは自分のサイトであり、他の誰かのものではない)、WordPressの組み込みXML-RPC機能を使用してコンテンツを取得できます。

組み込みのXML-RPCライブラリを使用してmetaWeblog.getRecentPosts、ブログのID(通常、単一サイトの場合は0、マルチサイトでは異なる場合があります)、WordPressユーザー名、WordPressパスワード、および投稿数を指定するリクエストを渡しますフェッチします(これを-1に設定してすべて受信します)。

他のサイトは、あなたがやりたいことを実行できるコンテンツを含む(かなり大きな)XMLファイルで応答します。これはすべて舞台裏で発生する可能性があり、metaWeblog.getRecentPostsリクエストはRSSフィードよりもはるかに多くの情報を提供します(重要なカスタムフィールドを含む)。


2

メモリが機能する場合、投稿数として-1を渡しても同じ効果があります。ただし、URLにどのように変換されるかは完全にはわかりません。

余談ですが、700以上のサイトが本当に必要な場合は、svn updateまたはgitが安定したブランチから、毎日プライベートリポジトリからプルするcronを検討してください... wp-への毎日のhttp呼び出しと組み合わせてadmin / upgrade.php。それはあなたのサイトをアップグレードまたは微調整するときあなたに多くの面倒を節約します-それはそれが自動的に行われるでしょう。



0

[設定]> [リーディング]に移動し、[シンジケーションフィードで最新を表示]の値を適切な数に変更すると、入力したフィードの数まで表示されます。


0

「すべての投稿」ではありませんが、limitparamの方がはるかに便利です。

「posts_per_rss」オプションを直接フィルタリングすることをお勧めします。

add_filter( 'option_posts_per_rss', 'my_posts_per_rss' );
function my_posts_per_rss( $option ) {
    if( isset( $_GET['limit'] ) ) {
        return (int) $_GET['limit'] ?: $option;
    }
    return $option;
}

フィードは次のようにアクセスできます:http : //example.org/category/acme/feed/?limit=999

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.