rssフィードでサムネイル付きの新着情報を表示させる方法

blog

 

RSSフィードを使うことで、ブログに新着情報を一括で自動表示することが出来ます。

また、外部サイトの更新情報も掲載することが出来ます。

>>RSSフィード取得ツール 「BeRSS」

RSSフィードが取得できない場合は、一旦セキュリティープラグインを無効化してみて下さい

記事を更新するごとにRSSも新しい情報を取得するため、常に新しい情報を提供することが可能となります。

特にビジネス目的でブログをする場合、集客力は重要な要素になりますので、ぜひ設定方法を覚えておきましょう。

RSSフィードをphpファイルで設定

functions.phpに以下のコードを追記します。

※functions.phpを編集する際、記入ミスやシステムの影響でデータが全部消えてしまったり、Webサイトが表示されなくなることもありますので、必ずバックアップを取っておいてください

/*----------------------------------------
RSSフィード取得
-----------------------------------------*/
function get_rss_feed( $arg ) {
$rss_info = array();
$arg = array_merge(array(
'url' => '',
'max' => '0',
), $arg);
$rss_url = fetch_feed( $arg["url"] );
if (!is_wp_error( $rss_url ) ) {
$maxitems = $rss_url->get_item_quantity($arg["max"]);
$rss_items = $rss_url->get_items(0, $maxitems);
}
if ($maxitems != 0) {
foreach ( $rss_items as $item ){
$rss_info[] = array (
'url' => $item->get_permalink(),
'date' => $item->get_date('Y.m.d'),
'title' => $item->get_title(),
);
}
}
return $rss_info;
}

次に、表示させたい箇所に次のコードを加えます。

<ul class="rss-list">
<?php
$arg = array(
"url" => "rss用URL",//取得するRSSのURLを記述する
"max" => 20,//表示させたい最大数を記述
);
$rss_info = get_rss_feed( $arg );
if ( !empty($rss_info) ) {
foreach ( $rss_info as $rss ) {
?>
<li><a href="<?php echo $rss["url"];?>" target="_blank">[<?php echo $rss["date"];?>] <?php echo $rss["title"];?></a></li>
<?php
}
?>
</ul>

これで、画像と見出しが表示された記事一覧を表示することができます。

※記事にサムネイルが設定されていない場合は表示されません。

rssでサムネイルを取得したい場合

サムネイルを取得する設定をしていない場合は、以下のコードをfunctions.phpに追記してください。

<?php 
// Feedにアイキャッチ画像を表示する
function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) . '</p>' . $content;
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');
?>

先程と同様に、表示させたい箇所にコードを挿入します。

<?php
//URL
$url = "https://×××.com/feed"; //記事一覧を持ってきたいサイトのfeedURLを記載
$context = stream_context_create(array('http' => array('method' => 'POST', 'header' => 'Content-Type: application/json'), 'ssl' => array('verify_peer' => false, 'verify_peer_name' => false,),));
$getTXT = file_get_contents($url, false, $context);
$getRss = simplexml_load_string($getTXT);

foreach ($getRss->channel->item as $item) {
$i++;
if ($i == 6) break;//何件まで表示するか
$description = $item->description;//コンテンツ
$imgurl = preg_match('/<img[^>]+src=[\'"]([^\'"]+)[\'"][^>]+\>/i', $description, $imgurls);//コンテンツからimgタグ無いのURLを抜き出す
$date = date("Y年 n月 j日", strtotime($item->pubDate));//投稿日
$link = $item->link; //記事のリンク
$title = $item->title; //記事のタイトル
$category = $item->category; //記事のカテゴリー
$e_content = $item->children("content", true);
$e_encoded = (string) $e_content->encoded;
$output = preg_match('/<img[^>]+src=[\'"]([^\'"]+)[\'"][^>]+\>/i', $e_encoded, $matches);
$first_img = $matches[1]; //記事中の最初の画像
?>
<!-- ここからコンテンツ -->
<article class="list">
<a href="<?= $link ?>">
<div class="common_img">
<img loading="lazy" src="<?= $imgurls[1] ?>" alt="<?= $title ?>">
</div>
<div class="common_content">
<p class="common_title"><?= $title ?></p>
<p class="common_category"><?= $category ?></p>
</div>
</a>
</article>
<?php } ?>

プラグイン

Post Snippets

phpのプラグイン

こちらは、プラグイン内で入力したphpコードをショートコードとして利用できるので、とても便利です。

使い方はこちらの記事で解説しています。

 

さっそく使ってみましょう。

「Add New Snippet」をクリックして新規作成します。

phpのプラグイン

次に、大きい枠の中に先程の②のコードを入力し、ショートコードの欄にチェックを入れたあと「save」をクリックします。

phpのプラグイン

クリックして画像を拡大

ブロックの名前はとりあえず「RSSフィード」にしておきましょう。

完了したら、投稿または固定ページを新規追加します。

テキストを確認すると、新たに「Post Snippet」が追加されていることが分かります。

postsnippetsの設定

クリックすると以下のような画面が出現するので「Insert」を選択するとショートコードが挿入されます。

postsnippetsの設定

postsnippetsの設定

プレビューで記事一覧が表示されていることを確認しましょう。

RSSフィードをヴィジェットに追加

「外観」の「ヴィジェット」をクリックします。

「RSS」をサイドバーに追加。

postsnippetsの設定

postsnippetsの設定

RSSフィードのURLとタイトルを入力します。

以上が解説となります。

記事一覧にnewマークを付けたい方はこちらの記事をチェックしてみてください。

 


ページトップに戻る

blog
タイトルとURLをコピーしました