ソフト

外部RSS情報から新着記事を表示させる

WPサイトに他のサイトの新着記事を表示させる方法で

GoogleAPIを利用する等色々な方法がありますが

APIで思っているようにできなかったので今回もまたぐぐってみました

参考にしたサイト

他にも参考にしたサイトがあったのですが、忘れてしまいました・・

【実行環境】

WP3.5

Exec-PHP4.9(プラグイン)

【実現したいこと】

・複数サイトの新着記事を抽出

・サイトに合わせて画像(アイコンサイズ)を表示

・新着情報を日付順に降順でソート

・全体の表示件数と各サイトから抽出する記事の件数を指定したい

・タイトルの文字数を制限したい

1.Exec-PHPを動作するようにします

2.サイトのイメージアイコンを作成し、サーバーにアップロード

3.表示させたいページにコードを入力

(今回はテーマのindex.phpを編集しました)

※index.php等のPHPで表示させる場合は、Exec-PHPは不要です

※参考にしたサイトがアメブロの抽出についてのものでしたので、アメブロの広告カットなどの機能が盛り込まれています

特に支障がないので、今回その部分は変更なしで利用させていただいています

表示させたい箇所に以下のコードを入力します


<?php include_once(ABSPATH . WPINC . '/rss.php'); // wp向けパス
ini_set("display_errors","0");
// 各アメブロRSSのURL入力
$blog_rss_arr = array(
'<a href="http://exsample1.com/?feed=rss2'">http://exsample1.com/?feed=rss2'</a> =>
 array('<a href="http://exsample.com/img/1.jpg'">http://exsample.com/img/1.jpg'</a>
 => 'サイト1'),
'<a href="http://exsample2.com/?feed=rss2'">http://exsample2.com/?feed=rss2'</a> =>
array('<a href="http://exsample.com/img/2.jpg'">http://exsample.com/img/2.jpg'</a> => 'サイト2')
); //RSSの指定、サイトイメージの画像ファイルを指定しています
// 新着記事の表示件数
$num = 4;
foreach($blog_rss_arr as $url => $a) {
$rss = fetch_rss($url);

$title = $rss->channel['title']; // ブログタイトル から取得
$link  = $rss->channel['link']; // ブログタイトルURL から取得

foreach( $a as $photo => $mem_name) {
$cnt=0;
//各サイトの抽出件数

$rss_cnt=2;
foreach($rss->items as $blog) {
if($cnt>=$rss_cnt){
break;
}else{
if(mb_strlen($blog['title'],'UTF-8')<24){
//タイトルを23文字まで表示させ、超えている場合は「....」を末尾に追加表示
$blog_title = $blog['title'];
}else{
$blog_title = mb_substr($blog['title'],0,23,'UTF-8') . '....';
}
$blog_link  = $blog['link'];
$blog_date  = $blog['pubdate']; // 投稿日の取得

// ブログの投稿日を表示
$out_item_date  = date('Y.m.d', strtotime($blog_date));

// RSSに含まれてしまうPR記事を除外

if(preg_match("/^PR:/",$blog_title)) {
$out_item ='';
} else {
$out_item ='
<div>
<img src="' . $photo . '">' . $out_item_date . ' ' .
'<a href="' . $blog_link . '" target="_blank">' . $blog_title  . '</a>
</div>';

$unix_time = date('U', strtotime($blog_date));
$blog_arr[$unix_time] = $out_item;
}
$cnt++;
}
}
}
}
// 記事を最新順にソート
krsort($blog_arr);

// 画面に出力
echo '';

for(reset($blog_arr); $key = key($blog_arr); next($blog_arr)) {
echo $blog_arr[$key];
++$count;

if($count === $num) { // 表示記事文表示
break;
}
}
echo '';

?>

これでindex.phpを編集したので、TOPに

【画像】 【日付(降順)】 【記事タイトル】

このように表示させることができました

※ソースコード表示のプラグイン「SyntaxHighlighter」を使用していますが

改行などうまくできずにはみ出しています

設定はできているのですが。。。

  1. ソフト

  2. Windows10アップグレード

  3. Windows10へのアップグレード

  4. Sweet Pageが表示される

  5. Yahoo!メッセンジャーサービス終了

  6. BaiduIMEにご注意を

  7. Internet Explorer11

  8. Adobe Flash Playerアップデート

  9. 今更ながらのGIMP

  10. Wordpress プラグイン 「Trust Form」

  11. 引き続きFacebook連携

  12. Facebook連携

  13. System Care Antivirus

  14. TuneUp Utilities 2013 Uninstall

  15. 外部RSS情報から新着記事を表示させる

  16. Windows Live Writer PartII

  17. Windows Live Writer

  18. JQueryUI(Tabs)続き~完

  19. WordPress+jQueryUI(Tabs)+Brightpage(テーマ)

  20. 情報

  21. Yahoo!メッセンジャーサービス終了

  22. Adobe Flash Playerアップデート

  23. 今更ながらのGIMP

  24. Wordpress プラグイン 「Trust Form」

  25. 引き続きFacebook連携

  26. Facebook連携

  27. 外部RSS情報から新着記事を表示させる

  28. Windows Live Writer PartII

  29. Windows Live Writer

  30. JQueryUI(Tabs)続き~完

  31. WordPress+jQueryUI(Tabs)+Brightpage(テーマ)

PAGE TOP