WordPressのRSSって、デフォルトだと公開日順にしか表示されないというのを初めて知った。
昔の記事を更新しても、更新日順には表示されないんだって。
意味ないじゃんか!
という訳で、今回頑張ってRssの出力を公開日順でなく更新日順にしてみた。
用意するもの
今回は「EmEditor」というテキストエディタをMicrosoftstoreからダウンロードして使用。
ない場合は、FTPクライアントソフトを利用する。
今回は、使っているスターサーバーにはファイルのダウンロード・アップロード機能があるのでそれを利用した。
Rssを更新日順に表示できるようにする
1.サーバー内の「wp-includes」→〔feed-rss2.php〕をパソコンへ一旦ダウンロード。
スターサーバーの場合、ファイルの頭にあるダウンロードマーク(赤いまるで囲ったところ)をクリックするとパソコンにダウンロードできる。
2.ダウンロードしたファイルをテキストエディタ(メモ帳以外)で開く。
3.テキストエディタで開いたファイルを以下のように書き換える。
<?php echo mysql2date( 'D, d M Y H:i:s +0000', get_post_time( 'Y-m-d H:i:s', true ), false ); ?>
の部分を探し
<?php echo mysql2date( 'D, d M Y H:i:s +0000', get_post_modified_time( 'Y-m-d H:i:s', true ), false ); ?>
に書き換える。
要はget_post_time(公開日時)をget_post_modified_time(最終更新日時)へ変更してある。
4.書き換えた、〔feed-rss2.php〕ファイルをパソコン内に保存。
5.書き換えた〔feed-rss2.php〕ファイルを子テーマのstyle.cssやfunctions.phpのある場所へアップロードする。
このブログで言えば
「wp-content」フォルダ→「themes」themesフォルダ→「cocoon-child-master」の中にアップロードする。
スターサーバーの場合は〔ファイルのアップロード〕でアップロードができる。
5.子テーマのfunctions.phpへ以下のコードを追記する。
/***** 標準のフィードを停止 *****/ remove_filter('do_feed_rss2', 'do_feed_rss2', 10); /***** 更新日順用のフィード出力 *****/ if ( !function_exists( 'ha_modify_feed_rss2' ) ){ function ha_modify_feed_rss2(){ $template_file = get_stylesheet_directory() .'/feed-rss2.php'; load_template($template_file); } } add_action('do_feed_rss2', 'ha_modify_feed_rss2', 10);
Rssの表示が更新日順に変わったか確認するには
1.Rssのキャッシュを一時的にOFFにするコードを子テーマのfunctions.phpへ追記する。
/***** フィードのキャッシュをオフにする *****/ function turn_off_feed_caching($feed){ $feed-> enable_cache(false); } add_action('wp_feed_options','turn_off_feed_caching');
2.Rssの表示が更新日順に変わったか確認する。
簡単にRss表示を確認するには自分のWordPressブログで確認するのが一番楽。
〔外観〕→〔ウィジェット〕→「利用できるウィジェット」の項目から〔Rss〕をクリック→サイト内の表示したい位置を選択→〔ウィジェットを追加〕→Rssフィードのアドレス(このブログの場合「https://wordpress.0hs.org/feed」)や表示内容を設定・入力→〔保存〕→自分のブログを表示する。
すると、自分のブログのRssが出てくる。
3.functions.phpへ追記した「Rssのキャッシュを一時的にOFFにするコード」を削除する。
コメント