【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をテンプレートにつけても大丈夫です(テンプレートのアップデートを使いたい場合は子テーマも検討)。

WordPressサイト制作&リニューアル・機能開発サービス | アトリエSS


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

  関連記事

WordPressの記事IDで判定して転送~PHP・headerとget_the_IDで対応、the_IDとの挙動の違いも
baserCMS(ベーサーシーエムエス)サイト制作2~テーマCSSやパーツPHP編集でデザイン
【webサイトセキュリティ対策】検索フォームへのSQL判定などがある不正な入力を、WAFで遮断する
【WordPressでPHPプログラムを学習シリーズ1】用語:PHP変数・関数・定数を、WPの機能を通して覚える
【PHP学習】var_dumpで出力するのと、echoで出力するのは、挙動がどのように違うの?
テスト環境(ローカル含む)でPHPサイト開発に使えるツール&xamppでやってみた例(設定や表示ファイルetc)
googleアドセンス広告で、競合他社の広告を自社サイトに表示させない方法
【WPカスタムフィールド】音楽サイトにBPM(数値)のフィールド作成&管理画面記事一覧に表示
WPカスタムフィールドを使って、soundcloudみたいに記事一覧でオーディオ再生できるサイトを作る方法
【WordPressフィールド画像取得】array_push&foreachループ、代替テキストをクラス出力、表示/非表示を切り替える方法
【WP記事取得クエリ・プラグイン無し】お知らせなどに使える、ショートコードで特定カテゴリ記事を表示プログラム
【おすすめWordPressテーマ】Maxwell~シンプル・洗練されたブログメディア向きテーマ・スライダーやレイアウト変更も簡単