【WordPress更新情報表示】php/wp組み込みファンクション(fetch_feed)で取得と、プラグインで表示どちらが良い?

      2021/03/03   2089文字

【WordPress更新情報表示】php/wp組み込みファンクション(fetch_feed)で取得と、プラグインで表示どちらが良い?

今回は、WordPress系のサイトで、トップページとか任意の部分に『ブログ部分の更新情報を表示』する方法について考えてみます。方法は『php/wp組み込みファンクションで更新情報取得して表示』『プラグイン』の2つ。それぞ特長を押さえて、どちらがよいか検討してみましょう。

方法1:自分でフィード取得プログラムを組んで更新情報を取得・表示

やり方・phpコード(fetch_feed使用)

更新情報取得プログラムのコードです。WordPressではパーツごとのphpファイルがあるので、表示したいところに対応したphpファイルにこれを書きます(場合によってはトップページだけみたいな条件分岐が必要になります)。fetch_feedという組み込みファンクションがあるので、わりとシンプルです。
『何記事取得か』『日付取得するか』などをプログラムに書いていきました。

キャッシュについて

『wordpress codex』によると、初期設定ではいちど取得した記事が『12時間キャッシュ』されるということです。
キャッシュを制御するには『wp-includes/feed.php』ファイル内のキャッシュ部分を、任意の数字に書き換えます。

例えば『いっぱい更新するからキャッシュ1時間』とか。($feed->set_cache_durationというところに、12 * HOUR_IN_SECONDSと指定されているので、ここを1時間にします。)

php/wp組み込みファンクションで取得の特長やデメリット

『プラグインを入れなくて良い』や、『プログラム組める人には設定自由自在』というのがポイントだと思います。デメリットとしては『プログラム慣れてない方には複雑』『記事部分じゃなくて、phpファイル内に書く』などが挙げられます。

方法2:プラグインwhat’s new generator

インストールや設定・表示の仕方

プラグインタイトル『what’s new generator 』で検索、有効化したら、あとはメニューに更新情報の設定ができるので設定します。

設定内容は『何記事表示するか?』『newアイコンはどれくらい期間つける?』など。表示させるときは、記事内の任意の場所にショートコードを貼り付けるだけでOKです。

what’s new generator 特長やデメリット

特長はなんといっても『操作がカンタン』ということです。表示したい記事にショートコードを貼るだけなので、特にプログラムの知識もいりません。

あまり無いけど、デメリットとしては『プラグイン読み込みの分、ちょっとだけ重くなる』や、『ショートコードが機能する場所にしか貼れない(記事など・header.php内とかはムリ)』といったところでしょうか。どうしても使いたい場合は『do_shortcode』を使うという形になりそうです。

(2020追記)どっちもWPの場合は、組み込みファンクションget_postsで記事取得してショートコード

(追記です)『お知らせ・新着を表示させたいサイト』『お知らせをブログみたいに書いているサイト』が、どちらも同じWPシステムで動いている場合は『get_posts』などの組み込みファンクションで記事を取ってきて、ショートコードで表示というものも使えるので、作ってみました。

『get_posts』などの組み込みファンクションで記事を取ってきて、ショートコードで表示
こんな感じで新着がでます。詳しくは以下の記事もご覧ください。

あとがき・まとめ

  • ヘッダー内に貼ってトップページだけ条件分岐するならfetch_feedで取得
  • プラグインあまり入れたくないときもfetch_feedで取得
  • 記事ページ内にサクッと表示したいときはプラグインで
  • 『お知らせを表示させたいサイト』『お知らせを書いているサイト』が、どちらも同じWPシステムの場合は、get_postsなどを使ってもok

といった感じだと思います。状況によってはテンプレートファイルをガンガンにカスタマイズしても大丈夫な場合があると思いますが、その場合はfetch_feedをテンプレートにつけても大丈夫です(テンプレートのアップデートを使いたい場合は子テーマも検討)。


【カテゴリ】 - PHP・データベースetc, webサイト制作関連
【タグ】 - , ,

  関連記事

【WordPressテーマ改造】カスタマイザープレビューが表示されなくなった件の対応(ファンクション名変更・twenty seventeen)
WPカスタムフィールドを使って、soundcloudみたいに記事一覧でオーディオ再生できるサイトを作る方法
【PHP etc.プログラム学習サイトコードコピペ】全角引用符・バッククオートが入ってて動かない件に注意
【悲報】アメブロがヤバい(特に無料プラン・スマホレイアウト)書いても書いても売れないのは何故?
WordPress記事一覧ページの『本文からの抜粋』を表示する関数と、その文字数の調整方法をチェックする
WordPress・REST APIのjsonファイルにカスタムフィールドを入れ、タイトル・アイキャッチと共に外部サイトで取得・表示
WordPressのアーカイブって、記事が増えると長くてたいへん!CSSで短くして使いやすくするには?
【WordPress更新情報表示】php/wp組み込みファンクション(fetch_feed)で取得と、プラグインで表示どちらが良い?
【WordPress組み込み関数】is_home()とis_front_page()って同じ?→似てますが、厳密には挙動が異なります
baserCMS(ベーサーシーエムエス)でサイト制作してみる1~インストールやSSL・テーマ設定
PHP・mb_substr関数を使って、タイトル文字数を揃える(WPレイアウト調整)
WPデータベースの余計なデータには何がある?事例と対処方法・あるとイヤなケース