Skip to content

複数ブログの新着記事をRSSで取得

新着記事のウィジェットを適当にコピペ&編集して作ってみました。

RSSFEED.phpを2018/03/03に修正したのが下の方にあります!


1. まずは下記のページを参照して、functions.phpにコードを追記。

【WordPress投稿ページにPHP利用→ショートコードを使おう!】

※参照ページ間違ってたみたいなので変更しました(^_^;)

ひろさんゴメン(笑)


2. 次にfunctions.phpと同じ階層にRSSFEED.phpを配置。

中身は…

<?php include_once(ABSPATH . WPINC . '/feed.php');
$rss = fetch_feed(array(
//以下にブログのRSS Feedを記述(複数の場合はカンマ区切り)
'http://umihen.com/feed/',
'http://tsugaike.blogspot.com/feeds/posts/default',
'http://rssblog.ameba.jp/angler-kk/rss20.xml',
'http://rssblog.ameba.jp/mike-lp/rss20.xml',
'http://rssblog.ameba.jp/ko-world/rss20.xml',
'http://rssblog.ameba.jp/juitanbass/rss20.xml',
'http://rssblog.ameba.jp/turinakama/rss20.xml',
'http://takeman.naturum.ne.jp/index.rdf',
'http://goodika.seesaa.net/index.rdf',
'http://kaziyann.blog70.fc2.com/?xml',
'https://kanbaka.jimdo.com/rss/blog',
'http://eso1gp.jp/blog/?feed=rss2'
));
if (!is_wp_error( $rss ) ) :
    $rss->set_cache_duration(1800);
    $rss->init();
    $maxitems = $rss->get_item_quantity(10); //表示させる記事の数
    $rss_items = $rss->get_items(0, $maxitems);
    date_default_timezone_set('Asia/Tokyo');
endif;
?>

<?php echo '<h5>新着ブログリンク</h5>'; ?>
<dl>
    <?php if ($maxitems == 0) echo '<dt>No items.</dt>';
    else
    foreach ( $rss_items as $item ) : ?>
	<dt><?php echo $item->get_feed()->get_title(); ?></dt>
	<dd>

	<?php
	$days = 3; //Newを表示させたい期間の日数
	$today = date_i18n('U');
	$entry = $item->get_date('U');
	$kiji = date('U',($today - $entry)) / 86400 ;
	if( $days > $kiji ){
	echo '<font color="#ff0000">New!</font>';
	}
	?>

		<a href='<?php echo $item->get_permalink(); ?>' target="_blank"><?php echo $item->get_title(); ?></a><br />
		<?php echo $item->get_date("Y-n-j"); ?>
	</dd>
	<?php endforeach; ?>
</dl>

上記のRSS Feedはブロ友のやつです(*^^*)

下記のサイトを参照(と言うかほぼコピペ)

【WordPressで複数のブログをRSSで取得して時系列で表示】

【WordPressでNew!を表示するパターン別4つの方法】


3. RSSFEED.php内の「RSS Feed」「表示させる記事の数」「新着ブログリンク」「Newを表示させたい期間の日数」の部分は自由!

タイトルは無理やり入れてるだけなので、要らなかったら下記を削除して下さい。

<?php echo '<h5>新着ブログリンク</h5>'; ?>


4. テキストウィジェットを配置して下記のショートコードを記入したら完了!

[myphp1 file='RSSFEED']


このブログの右下にもありますが…

こんな感じ(*^^*)


【追記】

ひろさんも上手くいったみたい(*^^*)

爆! 釣り部2の右下の方の[BLOGROOL新着情報]がこれです。


【2018/03/03追記】

上記のままでは同じブログばかり表示される事になったので一文追加しました(;´Д`)

$rss->set_item_limit(2); // 1ブログ何件まで表示させるか


なので、最終的にタイトルも取っ払ってこうなりました。

<?php include_once(ABSPATH . WPINC . '/feed.php');
$rss = fetch_feed(array(
//以下にブログのRSS Feedを記述(複数の場合はカンマ区切り)
'RSS Feed1',
'RSS Feed2',
'RSS Feed3',
'RSS Feed4',
'RSS Feed5',
'RSS Feed6'
));
if (!is_wp_error( $rss ) ) :
    $rss->set_cache_duration(1800);
    $rss->init();
    $rss->set_item_limit(2); // 1ブログ何件まで表示させるか
    $maxitems = $rss->get_item_quantity(10); //表示させる記事の数
    $rss_items = $rss->get_items(0, $maxitems);
    date_default_timezone_set('Asia/Tokyo');
endif;
?>

<dl>
    <?php if ($maxitems == 0) echo '<dt>No items.</dt>';
    else
    foreach ( $rss_items as $item ) : ?>
	<dt><?php echo $item->get_feed()->get_title(); ?></dt>
	<dd>

	<?php
	$days = 3; //Newを表示させたい期間の日数
	$today = date_i18n('U');
	$entry = $item->get_date('U');
	$kiji = date('U',($today - $entry)) / 86400 ;
	if( $days > $kiji ){
	echo '<font color="#ff0000">New!</font>';
	}
	?>

		<a href='<?php echo $item->get_permalink(); ?>' target="_blank"><?php echo $item->get_title(); ?></a><br />
		<?php echo $item->get_date("Y-n-j"); ?>
	</dd>
	<?php endforeach; ?>
</dl>


にほんブログ村 釣りブログ ソルトルアーフィッシングへ にほんブログ村 釣りブログ タコ釣りへ




Be First to Comment

コメントはこちらから ▽