Concrete CMS(concrete5)

RSS displayerブロックで記事内の最初の画像を表示する


サンプル画像にいろいろ言いたくなるのは放っておいていただきたい。笑
concrete5のRSS displayerブロックで取得した記事の中の、最初の画像を表示したくてカスタムテンプレート作ったメモ。

前提


写真画像はinstagramだけど、実際はIFTTTを経由してWordPressに画像投稿させてるだけです。なのでWordPress内のfeedから記事の最初の画像を取得している、ということになります。事前にWordPress側で記事内の画像を取得できるように修正しておくことも必要

カスタムテンプレート情報参考

参考はHow to display images with RSS displayer
たぶん元記事は5.6バージョン。

カスタムテンプレート該当箇所

            <div class="rssItemThumbnail">
                <?php 

                if (!function_exists('get_first_image_url')) 
                {
                function get_first_image_url($html) 
                    {
                          {
                          if (preg_match('/<img.+?src="(.+?)"/', $html, $matches)) 
                            {
                            return $matches[1];
                            }
                             else echo '';
                          }
                    }
                }
                    echo '<img src="' .get_first_image_url($item->getContent()). '" />';
                ?>
            </div>

preg_matchを使用しているので、RSSのimgタグの出力がimg src='ほにゃらら~' っていうソースの場合は該当箇所を

if (preg_match("/<img.+?src='(.+?)'/", $html, $matches))

と修正することで解決した。

5.6では$item->get_content()だったところを$item->getContent()に修正。そこだけ直しました。

  • この記事を書いた人

ゆず

忘れないように自分の覚書と、誰かも困っているかもしれないので参考になればいいなくらいの軽い備忘録です。
一杯おごる

-Concrete CMS(concrete5)
-,