古いブログ記事を新しい情報で更新するたびに、そのサイトを訪れるすべての読者に表示されます。 RSSフィードの読者は最新情報を入手しないで、新しい情報を見逃します。
私はRSSフィードへの投稿をあたかも新しい投稿であるかのように(できれば投稿タイトルの後に[Update]
を付けて)発行する方法を探しています。しかし、私がちょっとした変更(つづりの誤りを訂正するなど)を行ったときには、それが新しいRSS投稿にならないようにする必要があります。投稿を編集するたびにこれがマイナーチェンジかどうかを尋ねられたら理想的です。どうすればこれを達成できますか?
まずこれは明らかにバグではありません。 WordPressによって生成されたフィードは投稿後の日付順に並べられています。
セカンドRSSクライアントはアイテムを一意に識別します。 WPフィードの特定のケースでは、一意でない識別子は、きれいでない(?p=xxx
)パーマリンクを持つguid
フィールドです。投稿が変更されてフィードに戻されても、その識別子は同じままで、RSSクライアントによる読み取りとして扱われます。
実際には、一部のクライアントは変更されたものとして検出しますが、そうでないものもあります。いずれにせよ状況はあいまいで信頼できないでしょう。
ユーザビリティの観点からすると、フィードに再表示された以前に読んだ項目は読者にとって迷惑になる可能性があります(私にとって個人的にはそれは地獄のように迷惑です)。
あなたが欲しいものをまとめることは不可能ではありませんが、(私の意見では)WordPressとRSSの仕組みの両方に反します。
あなたの状況(そして私はかなりの量のそのような編集を仮定します)を考えると、私は更新されたエントリーのリストを持つ定期的なダイジェスト投稿をお勧めします。手動またはコードで生成できます。
Updateというカスタムmeta_fieldチェックボックスを作成することについてはどうですか。このボックスがチェックされていると、タイトルに[updated]というフレーズが追加される可能性があります。
例えば:
<?php if ( get_post_meta( $post->ID, _updated_post, true ) ) { echo '[Updated]'; the_title(); }else{ the_title(); } ?>
それはサイトへの訪問者の世話をするでしょう
あなたのRSSフィードで同じことにthe_title_rss
を使用してください
手動で戻ってボックスのチェックを外さなければならないのでなければ、おそらくwp_cronを使用して期間xの時間の値を自動的にリセットするとよいでしょう。
私はあなたがこれを間違った方法で見ているかもしれないと思います。古い投稿の新しい情報は、bothWebサイトとRSSフィードの閲覧者に表示されます。つまり、投稿が更新されたRSSフィードafterにアクセスした人は誰でも最新バージョンを見ることができます。
投稿が更新される前にRSSフィードにアクセスした人は誰でも新しい情報がいつ利用可能になるかわからないことは事実ですが、同じことがあなたのウェブサイトへの訪問者にも言えます。古い投稿が更新されたことをWebサイトの訪問者やRSS利用者に通知する唯一の方法は、「ちょっと、そのようなものに関する私の投稿が更新されました。ぜひご覧ください」という新しい投稿を作成することです。
あなたが基本的にやろうとしていることは、RSSリーダーを別の投稿であり、単なる更新版ではないと考えるように「トリック」することです。誰かがそれを閲覧したときにデータベースからコンテンツの最新版を呼び出すWPサイト自体とは異なり、RSSはより '静的'なバージョンであり、様々なフィードリーダーがリーダーアプリケーションに情報を引き込むときはいつでも何度更新しても静的になります。また、サードパーティのアグリゲーター(Feedburnerなど)が情報を取得してから、自分のキャッシュから情報を提供することにも注意してください。
だからあなたはいくつかの選択肢があります:
これは直接的な答えではありませんが、私はなぜあなたが最初にこれをしたいのかを尋ねなければなりません。常に同じ投稿/コンテンツを更新しているのであれば、なぜ人々が最初にRSSを購読するのかという使用を無効にしています。これには理由があると確信していますが、私は個人的には基本的に同じコンテンツの複数のバージョンで読者を非難したサイトの購読を中止したいと思います。
RSSフィードはFeedBurnerを介して実行されていますか、それともWPから正しく送信されていますか?
私は、FeedBurnerがこの仕事をするためのあなたの最高の計画さえ妨げになるかもしれないと聞いた。
古いものを(c-pのように)新しいものに再投稿し、あなたの購読者が本当にそれを見る必要があるならば、それに[UPDATED]タグを付けてみませんか?
あなたのためのいくつかの解決策
投稿を更新したときに公開日を変更する - RSSフィードに追加されます。必要に応じて、最初の投稿日をカスタムフィールドに保存できます。
しかし、コンテンツはたくさんシンジケートされます - 本当に必要なのは、パーマリンクにリンクしている最終更新日に基づいて作成された画像です。そのようにしていて、これが私がテストしたものではない場合は、公開日ではなく最終更新日に基づいてフィードを作成できます。 pingが必要かもしれません。 Google Blogsearchは、フィードバーナーコントロールを使用してインデックスに表示しないように指示されている場合でも、フィードコンテンツ全体のコピーを確実に保持します。インデックスがAtomフィード項目ではなくパーマリンクに基づいている可能性があります。
余計な手間をかけず、より多くのバックリンクを取得したいのですが...パラメータを使用して公開日を変更する場合は、パーマリンクの最後に日付を追加することをお勧めします。
もう1つの方法は、最後に変更された投稿を保存することです。投稿が公開された場合は、RSSの下部に最近更新された投稿も広告し、サイドバーにも同様のものを追加します。リンクを追加するので、私は実際にそのオプションが好きです。
私は次の解決策を見ます:フィード内の投稿のラインナップは投稿の最終更新日によってソートされるべきです。それがすでにフィードに当てはまるかどうかはわかりません。そうでない場合は、プラグインがクエリをフィードに投稿し、ソート順を変更する必要があります。
WPマイナー編集(Wordpressプラグイン) は、あなたが既に探している機能の一部を提供します。変更しないことで、投稿の最終更新日も利用します。
別のプラグインがフィードにフックする場合は、指定した種類のフィードを作成し、フィードの各タイトルで、投稿データが投稿の最終更新日以外のものであるかどうかを確認し、[UPDATED]を追加するタイトルに。
完了しました。