私はどうやって/私はワードプレスの設定で定義された最新のX投稿以上にアクセスできるかどうか疑問に思います。私はRSSを介してすべてのブログコンテンツを移行するプラグインを見たことがありますが、その方法を見て回っていません。
基本的に私は数百のWordPressブログを管理しています、そして私は私のクライアントのためにニュースレタージェネレータを構築しています。彼らはいくつかの投稿を選択し、抜粋をニュースレターの本文に表示させたいと考えています。サイトは複数のサーバーに分散しており、ニュースレタージェネレーターはCRMの上に構築されているため、直接データベースクエリを行うことは困難です。 RSSが最もクリーンですが、一度に10を超えるアクセス方法を見つけることはできません(管理者に10が設定されている場合)。
何か案は?
Codexには、フィード用にadminで設定された金額を上書きするための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
あなたの投稿を取得する方法はあなたのニュースレタージェネレータのRSSフィードの異なるページを呼び出すことです。あなたの様々なWordpressインストールを更新する必要がない安全なアプローチです。
yourwebsite.com/feed - >最新の10件の投稿を取得
yourwebsite.com/feed/?paged = 2 - >次の10件の投稿を取得
等々。
残念ながら、あなたがやろうとしていることは、ほとんどのコミュニティで一般的に眉をひそめています。私があなたが求めているのを聞きます:
これは、元の作者の許可なしに、ブログからコンテンツを削除して再発行するために一般的に使用されている方法です。それが私がそれが一般的に眉をひそめていると言う理由です。ほとんどのブログ作成者は素晴らしいコンテンツの開発に多くの時間と労力を費やしているので、自分のサイトにSEOクレジットを追加するために第三者が自分のハードワークを利用するのを簡単にすることは...うーん...厄介です。
そうは言っても、私はあなたが700以上のサイトからのコンテンツを廃棄する正当な理由があると今のところ仮定します。その場合は、RSSではなく、個別のプログラムによる方法をお勧めします。もしあなたがこれらのサイトすべてに正当なログイン情報を持っていれば(つまりそれらはあなたのサイトであり他の誰かではない)あなたはコンテンツを取得するためにWordPressの組み込みXML-RPC機能を使うことができます。
組み込みのXML-RPCライブラリを使用して、ブログのID(通常は単一サイトの場合は0、複数サイトの場合は異なる場合があります)、WordPressのユーザー名、パスワードを指定してmetaWeblog.getRecentPosts
にリクエストを渡します。取得する投稿(すべて受信するには、これを-1に設定します)。
他のサイトはあなたが望むものであなたがすることができる内容を含む(かなり大きい)XMLファイルで応答するでしょう。これはすべて背後で起こる可能性があり、metaWeblog.getRecentPosts
リクエストはRSSフィードよりもはるかに多くの情報を提供します(カスタムフィールドを含む、これはあなたにとって重要かもしれません)。
メモリが機能する場合、投稿数として-1を渡しても同じ効果があります。しかし、それがどのようにしてURLに変換されるのか完全にはわからない。
余談ですが、本当に700以上のサイトを持っているのなら、svn updatesやgitが安定版ブランチから、毎日プライベートリポジトリから引っ張ってくるようなcronを使うことを検討してください。 admin/upgrade.phpあなたのサイトをアップグレードしたり微調整したりするとき、それはあなたに多くの煩わしさを節約するでしょう - それは自動的に行われるでしょうという点で。
「すべての記事」ではありませんが、私はlimit
パラメータがはるかに便利であると主張します。
私は "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
あなたはFeedWordpressのようないくつかのRSSアグリゲータを使いたくなるかもしれません
[設定]> [閲覧]> [シンジケートフィードで最新のものを表示]の値を自分に合った数値に変更すると、入力したフィードの数まで表示されます。