記事内に広告が含まれています。

外部サイトの更新情報を表示するーWordPressカスタマイズ

外部サイトの更新情報を呼び出す-WordPress wordpressでブログを作ろう
外部サイトの更新情報を呼び出す-WordPress

 外部サイトの更新情報を自分のサイトに表示してみたい。

 「RSSを使って表示する」ってことができるらしい。

 やれるというなら、やってみたい。

 やってみよう。

広告

外部サイトのRSSの取得

 外部サイトのRSSは大体の場合「https://ドメイン/feed」。

 このサイトの場合なら「https://wordpress.0hs.org/feed」。

広告

「fetch_feed」関数で外部サイトの更新情報を表示

 「fetch_feed」関数を使うと外部サイトのRSSを取得できるらしい。

WordPress Codex 日本語版の関数リファレンス/fetch feedから引用し少し見やすくしたコードが↓

以下のサンプルのソースコードでは、既存の外部の RSS フィードを取得して、最新5件を表示させることができます。

<h2><?php _e( 'Recent news from Some-Other Blog:', 'my-text-domain' ); ?></h2><!--<h2></h2>は状況に応じて変える。「Recent news from Some-Other Blog」は日本語に訳すと「‎いくつかの他のブログからの最近のニュース:」‎-->
<?php // RSS フィードを取得します。
include_once( ABSPATH . WPINC . '/feed.php' );
// 以下で、指定されたフィードから SimplePie のオブジェクトを取得します。
// なお、この部分について array 関数を使い、配列にすれば、複数の RSS フィードを同時に取得して、複数の RSS フィードを1つにまとめて時系列に並べて表示することもできます。
$rss = fetch_feed( 'http://example.com/rss/feed/goes/here' );
// 「http://example.com/rss/feed/goes/here」部分に取得したいフィードを入力すると、SimplePieによってRSSが表示されます。
$maxitems = 0;
if ( ! is_wp_error( $rss ) ) : // ちゃんとフィードが生成されているかをチェックします。
$maxitems = $rss->get_item_quantity( 5 );// すべてのフィードから最新5件を出力します。
$rss_items = $rss->get_items( 0, $maxitems );
// 0件から始めて指定した件数までの配列を生成します。
endif;
?>
<ul>
<?php if ( $maxitems == 0 ) : ?>
<li><?php _e( 'No items', 'my-text-domain' ); ?></li>
<?php else : ?>
<?php // Loop through each feed item and display each item as a hyperlink. ?>
<?php foreach ( $rss_items as $item ) : ?>
<li>
<a href="<?php echo esc_url( $item->get_permalink() ); ?>"
title="<?php printf( __( 'Posted %s', 'my-text-domain' ), $item->get_date('j F Y | g:i a') ); ?>">
<?php echo esc_html( $item->get_title() ); ?>
</a>
</li>
<?php endforeach; ?>
<?php endif; ?>
</ul>

 冒頭の<h2></h2>は状況に応じて変える。

 また、「Recent news from Some-Other Blog」は日本語に訳すと「‎いくつかの他のブログからの最近のニュース:」なので、この部分は好きな文章に書き換える。

 このコードを記載した、新しいPHPファイルを作る。

 PHPファイルの名前は仮に「out-rss.php」にする。

 このファイルを、使用中の子テーマのフォルダ内にアップロードする。

 ちなみに下はネットで見つけたコード。

 今回は使用しないけど、いつかどこかで試したい。

比較コード WordPressで外部サイトのRSS情報を取得して更新情報を表示させる方法 | Webマガジン | 株式会社296 | 川崎のホームページ制作会社

<?php
//WrodPressのfeed.phpの呼び出し
include_once ABSPATH . WPINC . '/feed.php';
// 目的のFeedを取得
$feed = fetch_feed('http://commune.web-creator-world.com/?feed');
if (is_wp_error($feed)) {
$maxitems = 0;
} else {
//5件取得
$maxitems = $feed->get_item_quantity(5);
$items = $feed->get_items(0, $maxitems);
}
?>

<h4>
<a href="http://commune.web-creator-world.com/">Web Create Commune 新着情報</a>
</h4>

<?php if ($maxitems): // データあったら表示 ?>
<ul>
<?php foreach ($items as $item): ?>
<li>
<span class="date">
<?php echo $item->get_date('Y.m.d'); ?>
</span>
<br>
<a href="<?php echo $item->get_permalink(); ?>">
<span class="title">
<?php echo mb_strimwidth($item->get_title(), 0, 60, '…'); ?>
</span>
</a>
</li>
<?php endforeach; ?>
</ul>
<?php else: // データ無しの場合 ?>
<!-- データないよ -->
<?php endif; ?>

複数のサイトから取得する場合
$feedに代入するURIを配列で複数にしてあげます。

$feed = fetch_feed(array(
'https://296.co.jp/feed',
'https://appartement.in/feed',
'https://studio.appartement.in/feed'
));

PHPファイルを呼び出すショートコードを記載

 PHPファイルを呼び出すショートコードを表示させたい場所に記載する。

[call_php file='PHPファイル名']

「out-rss.php」を呼び出す場合↓

[call_php file='out-rss']

試しに姉妹サイト「https://freesoft.0hs.org/」の更新情報を呼び出してみる。

姉妹サイトの更新情報

無事表示できました。

K
K

ショートコードって便利だ。

コメント

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