2009/11/19の記事でWordPressでのRSSフィード購読者数を表示するプラグインを紹介していました。
その数値の正否は分かりませんが、設置時には9名だったのに対し、本日77名という表示がされました。
Google Readerからの購読者数が頻繁におかしくなったりするプラグインですが、わずか半年で68名も増えました。
10万アクセス時の記事でも書きましたが、アクセス数増加と共に購読者数も増えた事に感謝します。
最近は『今日のシリーズ』の更新しかしない時も多いので、RSSで読む方が正解かもしれませんね。
それでもセンスは無いもののデザインを考えるのは好きなので、密かにリニュデザインを考えたりしているのであります。
WordPress 3.0 リリースまでには固めておきたいなーと思いつつ、中々固まりません。
やっぱりブログって、ある程度決まったデザインになるのは仕方ない事なんでしょうかね。
ラフ → イラレ or フォトショの流れが主だと思います。
押入れにあったスケッチブックを取り出してラフ書いてたら、結構スケッチブックって良いもんだと気付きました。
CSS3も便利なものが増えていますし、次はCSS3使っていこうかなと考えています。
IE?
そんな旧時代の物は無視です。
2009/11/19
2010/5/23

Tag:RSS
2日前からトップページのみにTwitter(@kome__suki)のつぶやきを表示させるようにしていました。
これはいつものRSSフィードを読み込んで表示させる方法を使用していたんですが、Twitterだけは上手く読み込んでくれません。
文字コードが何故か ASCII になってバケたり、30分経っても読み込まなかったりとメチャメチャです。
ブログ用のアカウント取ったってのに、そのブログにちゃんと表示してくれなくては意味がありません。
こちらのサイトも利用して試させてもらいましたが、やっぱりダメでした。
なので、TwitterのRSSだけはプラグインに頼った方が懸命です。
サイドバーにある @kuu_san のつぶやきは『Twitter Tools』というプラグインを使用しています。
多数のアカウント設定は出来ないので、別の『Tweetable』と言うプラグインを使用しました。
これは凄いです。
何が凄いって、Twitterでつぶやいた内容が瞬時に反映されます。
TweetDeck でつぶやき、すぐにブログをリロードしたら反映されていました。
この速さには驚きです。
RSSと言うより Twitterの公式サイトに登録するので、アプリと同じ感覚なんでしょうね。
管理画面上からつぶやいたりフォロワーのTLなんかも見れますが、私は表示させたいだけだったのでこの辺はノータッチです。
バージョンが上がって少々違いますが、登録などの仕方は以下のサイトを参考に。
[wordpress]Twitter連携用プラグインTweetableが便利すぎる!
私がハマった点は『コールバックURL』を入力しなかった為、ドえらい手間が掛かりました。
上記ページ1枚目のスクリーンショットの所に『コールバックURL』が表示されているので、ちゃんと登録画面でコピペしましょう。
設定し直すと、すんなり登録できました。
後は表示させたい場所に以下のコードを加えればOK。
<?php tweetable_latest_tweets(10); ?>
『 10 』の数字は、表示させたい件数です。他にもフォロワー数を表示させたり出来るみたいです。
詳しくはプラグインページの『Other Notes』に書かれています。(英語)
使えたとなると、後は私の大好きなカスタマイズのお時間です。
いじくるファイルは『tweetable.php』と『main_css.css』の2つです。
CSSファイルは2つあって、『admin_css.css』は管理画面上のCSSなので、これは触らない方が良いと思います。
管理画面なんて自分しか見ませんもんね。
以下のつぶやきを元にしてみます。
プラグインをそのまま使うと、以下のように表示されます。
May 4, 2010 6:00
まずは日付を日本語表記にします。
tweetable.php 60行目 (Version: 1.1.8)
$date = date('F j, Y g:i', strtotime($latest['tweets'][$counter]['created_at']));
↓$date = date('Y/n/d H:i', strtotime($latest['tweets'][$counter]['created_at'])+32400);
日付を西暦表示にし、GMT+9時間で日本時間に変更しています。
私は日時を前に持ってきたかったので、以下のように変更しています。
tweetable.php 61~63行目 (Version: 1.1.8)
echo '<span class="twitter_status">';
echo '<span class="status-text">'.make_clickable($latest['tweets'][$counter]['text']).'</span>';
echo '<span class="twitter_meta">'.$date.'</span>';
↓echo '<span class="twitter_status">';
echo '<span class="twitter_meta">'.$date.'</span>';
echo '<span class="status-text">'.make_clickable($latest['tweets'][$counter]['text']).'</span>';
只単に62行目と63行目を入れ替えただけです。
170行目からも同じ記載がありますが、こちらは変更しなくても上手くいきました。
不安な人は、どちらも変更してた方が吉かもしれません。
ソースを見ると分かりますが、コードは以下のように出力されます。
(分かりやすいように改行しています)
<li class="tweetable_item">
<span class="twitter_status">
<span class="twitter_meta">2010/5/05 03:00</span>
<span class="status-text">【アニメ】けいおん!!がオリコン1・2位独占。 そして中の人を初めて見た。 <a href="http://bit.ly/ba5ZFj" rel="nofollow">http://bit.ly/ba5ZFj</a></span>
</span>
</li>
日付を囲っている『twitter_meta』には『display:block;』が入っているので、SPANであっても改行されてしまいます。
この辺は好みで『main_css.css』ファイルをいじってください。
私はバックに画像を入れているので全てコメントアウトして、テーマ内のCSSファイルに書き込んでいます。
その方が画像を使用した場合、絶対指定しなくて済むので楽です。
なるべくプラグインに頼らずにやろうと思いましたが、最初にも書いた通り TwitterのRSSだけはプラグインに頼った方が懸命です。
昨日作ったブログ用のTwitterアカウントのつぶやきを、トップページのみ表示させました。
RSSをそのまま表示させるのには難があります。
1.Twitterからのフィードは、全文表示しかない。
2.文の頭にアカウント名が入る。
3.リンクはテキストのまま。(非リンク状態)
4.日時表示が日本向きではない。
たった1つのつぶやきに対し、上記の4つもの問題点があります。
その問題を解決させて表示させる方法です。
PHPでの基本的な表示方法は、例によってこちらの方法を使用しています。
1.Twitterからのフィードは、全文表示しかない。
RSSフィードからの情報は以下の通り。
『2010/5/3 00:23:40 【2ch】この精神科医に良い病院を教えてあげてください。 http://bit.ly/cZuTm0』を例にしています。
Array (
[title] => kome__suki: 【2ch】この精神科医に良い病院を教えてあげてください。 http://bit.ly/cZuTm0
[description] => kome__suki: 【2ch】この精神科医に良い病院を教えてあげてください。 http://bit.ly/cZuTm0
[pubdate] => Sun, 02 May 2010 15:23:40 +0000
[guid] => http://twitter.com/kome__suki/statuses/13250913673
[link] => http://twitter.com/kome__suki/statuses/13250913673
[summary] => kome__suki: 【2ch】この精神科医に良い病院を教えてあげてください。 http://bit.ly/cZuTm0
)
6つになっているにも関わらず、被っている点が多いです。
今回は『description』と『pubdate』のみを使用します。
結果的に表示させたい箇所に書き込むコードは以下。(リスト表示にした場合)
<ul>
<?php
$rss = fetch_rss('http://twitter.com/statuses/user_timeline/139088868.rss');
$maxitems = 10;
$items = array_slice($rss->items, 0, $maxitems);
if (empty($items)) echo 'No items';
else
foreach ($items as $item) :
?>
<li><?php
$text = substr($item['description'],12);
$text = ereg_replace("(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", $text);
echo date("Y/n/j H:i", strtotime($item['pubdate'])+32400) . $text;
?></li>
<?php endforeach; ?>
</ul>
2.文の頭にアカウント名が入る。
『$text = substr($item['description'],12);』の部分です。
substrで12文字目からの指定をし、アカウント名を表示させていません。
アカウント名によっては、この『 12 』の数値が変わります。
3.リンクはテキストのまま。(非リンク状態)
『$text = ereg_replace(“(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)”, “<a href=\”\\1\\2\” target=\”_blank\”>\\1\\2</a>”, $text);』の部分です。
テキスト内にURLが含まれると、テキストと同じリンクURLを貼る形になっています。
4.日時表示が日本向きではない。
ただ単に表示させると『Sun, 02 May 2010 15:23:40 +0000』になってしまいます。
これを日本表示向けにするのが『date(“Y/n/j H:i”, strtotime($item['pubdate'])+32400)』の部分です。
日本はGMT+9時間なので、date表示する時に『+32400(+9:00)』にしています。
strtotimeでタイムスタンプに変換した内容を、dateで任意の表示方法に変えています。
最後に3の『$text』と一緒に表示(echo)させています。
Y = 4桁の年
n = 0無しの月(1~12)
j = 0無しの日(1~31)
H = 24時間制0付き(00~23)
i = 0付きの分(00~59)
秒を表示させたい場合は
s = 0付きの秒(00~59)
私は日時を赤で表示させていますが、その場合はこちら。
echo "<span style=color:#ff0000;>" . date("Y/n/j H:i", strtotime($item['pubdate'])+32400) . "</span> " . $text;
通常は『<span style=”color:#ff0000;”>』と『 ” (ダブルクォーテーション)』を使いますが、上手く表示しなかったので省いています。(結果オーライw)以下は参考になったサイト。
[PHP] RSSのpubDateを時間に変える方法
PHPスクリプト講座:GMTの有効利用
iTunes Storeはトップ10やトップ25などのRSS配信をしています。
RSSリーダーで読む事も、WordPressではなくても表示させる事は可能です。
私がWordPressを使ってるってだけです。
WordPressでのRSS表示方法は以前書いた『【WordPress】外部RSSを取得して表示する方法』の方法を使っています。
この方法を使ってWordPress上に表示させてみます。
『sidebar.php』など、PHPファイルに書くのであれば何の問題もありませんが、ページを使って表示させる場合はPHPで書いていますので、以下のプラグインが必要になります。
Exec-PHP plugin for WordPress
このプラグインを入れると、記事内だろうがページ内だろうが、どこでもPHPを書く事が出来ます。
以下はWordPressのページを使って、無料ゲームアプリ トップ10を表示させています。
説明文の開閉はjQueryを使用しています。
では、サンプルページのように表示させる方法。
まず、以下のサイトでRSSフィードを取得します。
Apple – iTunes – RSS Generator
今回は『Japan / App / 無料 app / 10 / ゲーム』で取得しています。
ページを作成し、以下のコードを書きます。
<?php
$rss = fetch_rss('http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/topfreeapplications/sf=143462/limit=10/genre=6014/xml');
$maxitems = 10;
$items = array_slice($rss->items, 0, $maxitems);
if (empty($items)) echo 'No items';
else
foreach ($items as $item) :
?>
~~~~~
<?php endforeach; ?>
取得したRSSフィードをコピペし、表示する数を10に設定しています。
『~~~~~』の所に好きなようにデザインします。
RSSからの情報は『$item』に格納されます。
配列に入っているデータは以下のようになります。
| 名 称 | 表示コード |
|---|---|
| アップデート日 | |
| ID | |
| タイトル | |
| 説明文 | |
| 名前 | |
| 期間 | |
| 製作者 | |
| 価格 | |
| アイコン | |
| リンク | |
| リリース日 | |
| 1枚目のスクリーンショット | |
| コピーライト | |
| 全文 | |
注意点1
アイコンは3つのサイズがあり、『image』の中に3つ分のURLが入っています。
それをそのまま書いても表示されないので、100×100のアイコンを表示させる場合、以下のような文になります。
<img src="<?php echo substr($item['im']['image'],162,245); ?>" />
PHPのsubstrで162(161)文字目~245(244)文字目を出力するようにしています。数値は0から始まります。
ちなみに175×175の大アイコンもあるようで、その場合はこちら。
<img src="<?php echo substr($item['im']['image'],0,69); ?>175x175-75.jpg" />
注意点2
ジャンルとカテゴリーに関してはRSS内に入っていないので、手書きする必要があります。
最後に、サンプルページの全内容です。
<h2 class="title">AppStore 無料ゲームアプリ トップ10</h2>
<?php
$rss = fetch_rss('http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/topfreeapplications/sf=143462/limit=10/genre=6014/xml');
$maxitems = 10;
$items = array_slice($rss->items, 0, $maxitems);
if (empty($items)) echo 'No items';
else
foreach ($items as $item) :
?>
<div class="entry_title_top"></div>
<h2 class="index_title"><a href="<?php echo $item['id']; ?>" target="_blank" style="font-size:16px;"><?php echo $item['im']['name']; ?></a></h2>
<div class="entry_title_btm"></div>
<div style="float:left; width:250px;">
<img src="<?php echo substr($item['im']['image'],162,245); ?>" />
<strong>価格:</strong> <?php echo $item['im']['price']; ?>
<strong>カテゴリー:</strong> ゲーム
<strong>リリース:</strong> <?php echo substr($item['im']['releasedate'],0,10); ?>
<strong>アップデート:</strong> <?php echo substr($item['updated'],0,10); ?>
<strong>販売業者:</strong> <?php echo $item['im']['artist']; ?>
<strong>コピーライト:</strong> <?php echo $item['rights']; ?>
</div>
<div style="float:right; width:330px; text-align:right;">
<img src="<?php echo $item['link_enclosure']; ?>" class="pict" width="300" />
</div>
<div style="clear:both;"></div>
<div class="entry_box" style="margin-bottom:30px;">
<div class="title">■原文説明</div>
<div class="intro"><?php echo $item['summary']; ?></div>
</div>
<?php endforeach; ?>
デザイン部で改行が変になっているのは、『brBrbr』を入れている為です。
注意点3
RSSを表示しているだけなので、LinkShareは使えません。
『Yahoo Pipes』を使えば出来るようですが、そこまで調べていません。
『app-store.org』、『BuzzApp!』、『CatchApp』なんかはシステムでしてそうですけど、どうやってiTunesからのデータを引っ張って来ているのかを知りたい。
そうすればLinkShare貼ってゴニョゴニョ出来るのに。w
人それぞれ情報源としている場所は違うと思います。
WEBで見たり、書籍で見たり。
私がiPhoneアプリを探すのはWEBサイト(ブログ)をRSSに取り込んで、ザーっと見ています。
私がアプリを落とす一番の決め所は、何と言ってもスクリーンショット(以下SS)!
多少の違いはあるものの、大抵はSSを見るだけで何となくどんなアプリかが分かります。
と言うか、SSを見て分からない複雑すぎるアプリは私にとってちょっと敬遠してしまいます。
『UI は、シンプル イズ ベスト!』
便利な追加機能はその上で成り立てば良いと思っています。
便利すぎる機能も、使い勝手が悪ければ何にもなりませんしね。
さて、前置きが違う方向へ行ってしまいましたが、現在私が情報収集としてみているサイトは24サイト。
毎日更新されているサイトもあれば、ちょこちょこと更新しているサイトもあります。
個人的には一覧のみのニュースより、1つのアプリに対してのレビューの方が好きです。
たまに色んな所で見る『おすすめアプリ10選!』なども結構役立っています。
では、以下より24サイトのご紹介です。
掲載順は、Googleリーダー順です。
続きを読む
RSS使っている人ならおそらくなじみの『Google リーダー』。
毎日見ているサイトが多いほどRSSは欠かせない存在になっています。
一見便利なGoogle リーダーですが、これだけではRSS配信された内容を全て見る事が出来ないサイトもあります。
以前紹介した『Greasemonkey』のスクリプトを使えば見れない事もないんですが、もっと簡単に全部見れる方法があるようです。
GIGAZINEを例に見てみます。
通常は全文見る事が出来ず、最初の一部しか見れません。
『Greasemonkey』のスクリプト、『Changeset』を使った場合。
こちらは『Google Reader Preview Enhanced』を使った場合。
このままでも十分使えるレベルなんですが、この2つのスクリプトでも駄目なサイトもありますし、違うPCで見ようと思うと各PCにアドオン・スクリプトをインストールしなきゃいけないしで、メリットもありますがデメリットもあります。
しかし、『まるごとRSS』で出力されたURLをGoogle リーダーに登録するだけでアドオン・スクリプトは要らないし、違うPCでもちゃんと見れるし、更にブラウザが違っても大丈夫と、メリットだらけです。
では簡単な登録方法。
『まるごとRSS』にアクセスし、RSSを読みたいサイトのフィードのURLを入力(コピペ)します。
入力したら、『GO』をクリック。
Google リーダー以外にも色んなRSSリーダーに登録する事も出来るようです。
Google リーダーの場合は、赤で囲ったリンクをクリック。
そのまま、また赤で囲ったボタンをクリック。
たったコレだけで、『Changeset』を使っているかのように表示されました。
『Changeset』の場合は、[G]をクリックするかキーボードの[Z]を押すしか全文表示させる事が出来ませんが、『まるごとRSS』の場合は、開けばすぐに全文見る事が出来ます。
これは今登録しているサイトの見直しをしなければいけません。
一番嬉しいのは『ブラウザが違っても見れる』ってな点でしょうか。
HPサイトやブログをやっている人ならカウンターは非常に気になる所ですよね。
それと同じく、RSSで購読している人数ってのも気になる所です。
ふと気になったので何かないかなーと探して見た所、非常に良さげなプラグインを発見しました。
WordPressでRSSフィード購読者数を計測するプラグイン FeedLogger
上記リンク先にプラグイン本体と導入方法が細かく書かれているので、ここで改めて書く事がありません。
設置したばっかりは何も計測されません。
少々時間が必要なようです。
一晩明けて見た所、しっかり計測されていました。
2・3人だと思ってましたから、正直9人居た事にビックリ。w
YouTubeが1080p対応になり盛り上がっております。
『&hd=1』になったのが7月頃なので、4ヶ月ちょっとでまたレベルアップしましたね。
9/24に紹介したYouTubeのコードをXHTMLにするジェネレーターを紹介して以来そのコード形式で書いていましたが、何とこのコードではWPtouchで表示されない事が判明しました。
本来ならこのように表示されます。
しかし、XHTMLのコードだと表示されません。
PC表示にしても同じです。

以前紹介したプラグイン『mmyYouTubeHQ』はちゃんと表示されます。
が、いかんせん動画の下に意図しないテキストが入るのであんまり好きくない。
仕方が無いので、元のYouTube自体に書かれている埋め込みコードに戻しました。
現デザインの右上に表示させている動画ですが、今まではYouTubeのお気に入りに入れた動画をRSSで読み込んでいましたが、1記事で書いた動画を表示するようにしました。
記事内の動画と右上の動画のサイズが違うので、少々技(と言うまでもないですが)がいります。
まずYouTubeの埋め込みコード
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/OLeZAGLEzcU&hl=ja_JP&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/OLeZAGLEzcU&hl=ja_JP&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
この中に書かれた『width(幅)』と『height(高さ)』を削除。
あと動画のコードも削除します。
『hd=1』と『fmt=37』を付け足す。
(fmt=37 だけで良いかもしれませんが)
<object><param name="movie" value="http://www.youtube.com/v/●&hl=ja_JP&fs=1&hd=1&fmt=37"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/●&hl=ja_JP&fs=1&hd=1&fmt=37" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true"></embed></object>
このコードを『AddQuicktag(過去記事)』で追加します。
これでYouTubeの動画を貼る時はボタン1つで、元動画のアドレス部を●位置に追加すれば表示する事が出来ます。
最後に動画のサイズはCSSで調整します。
記事内のCSS
.entry object,
.entry embed {
width: 425px;
height: 344px;
}
サイドのCSS
#sidebar object,
#sidebar embed {
width: 300px;
height: 246px;
}
便利な事でも全てに対応してないと、やっぱ使えませんね。
デフォルトが基本って言った所でしょうか。
YouTubeは『マイ動画』や『お気に入り』をRSSで配信しています。
それを、1つ前の記事で書いた方法で表示させる方法です。
以前のコードのままでは表示されず、PHPのコードを使う必要があります。
以下の例は、以前私がアップした『かめー』を参考にして書いています。
まずはYouTubeのアカウントを持っていない事には始まらないので、作成しましょう。(無料です)
ログインしたら、動画をお気に入りに追加して『お気に入り』を開きます。
この『お気に入り』のRSSのアドレスを取得します。
1番手っ取り早いのは、ソースを開いて『rss』で検索すれば以下のコードが摘出されます。
<link rel="alternate" type="application/rss+xml" href="http://gdata.youtube.com/feeds/base/users/***/favorites?client=ytapi-youtube-user&v=2" title="Youtube - *** さんのお気に入り">
上記の『href』をコピーして、以前のコードに追加します。
sidebar.phpなど
<?php
$rss = fetch_rss('http://gdata.youtube.com/feeds/base/users/***/favorites?client=ytapi-youtube-user&v=2');
$maxitems = 1;
$items = array_slice($rss->items, 0, $maxitems);
if (empty($items)) echo 'No items';
else
foreach ( $items as $item ) :
?>
(表示させる箇所)
<?php endforeach; ?>
次からが問題で、RSSで取得した動画のアドレスを記述しても表示されません。
『URL』と『埋込み』のアドレスが違う為です。
『$item['link']』ではURLが取得されます。
『かめー』のURL。
http://www.youtube.com/watch?v=HKR8J4uXcTA
『かめー』の埋込みタグ。
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/HKR8J4uXcTA&hl=ja&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/HKR8J4uXcTA&hl=ja&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
『HKR8J4uXcTA』だけは共通なので、PHPの『substr』関数を利用します。
『substr』は指定した位置からの文字を取得できる関数です。
元のコードに『<object> ~~~ </object>』を追加し、『substr』関数を追加します。
<?php
$rss = fetch_rss('http://gdata.youtube.com/feeds/base/users/***/favorites?client=ytapi-youtube-user&v=2');
$maxitems = 1;
$items = array_slice($rss->items, 0, $maxitems);
if (empty($items)) echo 'No items';
else
foreach ( $items as $item ) :
?>
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/<?php echo substr($item['link'], 31); ?>&hl=ja&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/<?php echo substr($item['link'], 31); ?>&hl=ja&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
<?php endforeach; ?>
URLの31文字目からが『HKR8J4uXcTA』なので、その部分を上手く当てはめます。
後は動画の表示する大きさを指定します。
元サイズは『425×344』です。
これを以下の式で計算します。
私は横幅300pxにしたので、高さは以下の式になります。
最終的なコードは以下のようになります。
効果あるか分かりませんが、気分的な問題で『hd=1』も入れてみました。w
<?php
$rss = fetch_rss('http://gdata.youtube.com/feeds/base/users/sutetema/favorites?client=ytapi-youtube-user&v=2');
$maxitems = 1;
$items = array_slice($rss->items, 0, $maxitems);
if (empty($items)) echo 'No items';
else
foreach ( $items as $item ) :
?>
<object width="300" height="243"><param name="movie" value="http://www.youtube.com/v/<?php echo substr($item['link'], 31); ?>&hd=1&hl=ja&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/<?php echo substr($item['link'], 31); ?>&hd=1&hl=ja&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="300" height="243"></embed></object>
<?php endforeach; ?>
WordPressで他サイトのRSSを取得して表示する方法はプラグインの『FeedList』を使えば簡単に出来ますが、複数設置出来ないのが難点。
以前の詳細記事は以下
【WordPress】Tumblrを表示させる方法
【WordPress】FeedListを複数設置する方法
【WordPress】ニコニコ動画をRSSで表示させる方法
【WordPress】FeedListのバージョンアップ、ちょっと待った!
『feedlist.php』に手を加えればいけない事もないんですが、バージョンアップの度に直さなくてはいけないのは面倒です。
なので、WordPressのテーマ内PHPに直接書く事にしました。
利用させてもらったのは、以下のサイトからです。
[WP]wordpressでRSSを取得して表示
WordPressは管理画面などでRSS取得表示してるので、それを上手くテーマにも利用すれば良いんですね。
まず全てのファイルに適用出来るように、ヘッダーに以下のコードを追加。
header.php
<?php
include_once(ABSPATH . WPINC . '/rss.php');
define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');
define('MAGPIE_CACHE_DIR', './cache');
define('MAGPIE_FETCH_TIME_OUT', 30);
define('MAGPIE_CACHE_AGE', 60*60);
?>
<!DOCTYPE ~~~
<html ~~~
簡単な下準備が整った所で、表示させたい箇所に以下のコードを追加します。
(tumblrを読み込んだ例)
sidebar.phpなど
<?php
$rss = fetch_rss('http://ほげほげ.tumblr.com/rss');
$maxitems = 1;
$items = array_slice($rss->items, 0, $maxitems);
if (empty($items)) echo 'No items';
else
foreach ( $items as $item ) :
?>
<a href="<?php echo $item['link']; ?>" title="<?php echo $item['title']; ?>" target="_blank"><?php echo $item['description']; ?></a>
<?php endforeach; ?>
基本的に以下の項目だけを編集します。
$rss = 読み込むRSSのアドレス
$maxitems = 読み込む数(上記では最新の1つだけ取得)
『No items』は読み込むデータがない場合に表示されます。
『表示させる記事がありません』とか『何もありまへん』とか日本語でもOK。
『<a>~~~</a>』は実際に表示させたい項目のコードを書きます。
$item['link'] = リンクアドレスが取得されます。
$item['title'] = タイトル(キャプション等)が取得されます。
$item['description'] = 全てが取得されます。(tumblrの場合、画像とキャプション)
上記の取得される項目と表示された時のソースとCSSを上手く使って、好みにデザインします。
私的には画像のアドレスだけ取得したい所なんですが。
これを基本に使えば、ニコニコ動画のマイリストを取得したり(以前の記事)出来ます。
『twitter』は表示されない時が多々あるので、『Twitter Tools』(解説サイト)と言うプラグインを使用しています。
『YouTube』は少々手を加えなきゃいけません。(後日書きます)

