【WordPress】パラメーター「?feed=rss2」で読み込むフィードを公開日順から更新日順などに並び替える
2020.12.20 Posted by Coding_team
こんにちはウェブラボ技術メモです。
先日Wordpressで生成されるRSSを読み込み一覧表示する作業を行ったのですが、何故かRSSが公開日昇順(古い順)になっており苦労したので、その際の解決策をご紹介します。
今回ご紹介するのはパラメーター付与による並び替えであり、テンプレート編集による根本的な設定ではありませんのでご注意ください。
(ちなみに)RSSの表示
WordPressでは、URLの末尾に「?feed=rss2」と書いて開くとRSSを表示することができます。
例「http://example.jp/?feed=rss2」
RSSの並び替え
ここからが本題です。
RSSを並び替えるには先ほどのRSSのURLに「orderby」パラメーターを追加します。
値として以下のようなものがあります。
公開日順 | date |
---|---|
更新日順 | modified |
タイトル順 | title |
例 更新日順に並び替え
「http://example.jp/?feed=rss2&orderby=modified」
そして、その並びの昇順・降順を並び替えるには「order」パラメーターを追加します。
値は以下の2つです。
昇順 | asc |
---|---|
降順 | desc |
例 更新日降順に並び替え
「http://example.jp/?feed=rss2&orderby=modified&order=desc」
このようにしてRSSの表示順を切り替えることができます。
(ちなみに)
日付において、昇順=古い順、降順=新しい順 になります。
jQueryのajaxでフィードを取得する
ajaxでこれらを取得するには、urlの値にパラメーターを付与するだけです。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$(function(){ $.ajax({ url:'/?feed=rss2&orderby=modified', async: true, cache: false, dataType: 'html' }).done(function(xml) { $(xml).find('item').each(function(i){ var title = $(this).find('title').text(); var date = $(this).find('pubDate').text(); //出力 $('#hoge').append('<li><span>'+date+'</span>'+title+'</li>'); }); }); }); |
このようにして更新日順にソートされたフィードが取得できます。
いかがでしたか?
第三者がこのフィードにアクセスする想定なのであればURLを明示する必要がありますが、テンプレートファイルをあまり変更できない場合この方法で簡単に並び替えができます。
以上ウェブラボ技術メモでした。
関連記事こちらの記事も合わせてどうぞ。