WP: Google リーダーからブログロール(リンク)へのインポート・表示
Responces:
- No Responses yet
- コメントをどうぞ
- Trackback URI
- RSS 2.0: 更新情報
- RSS 2.0: Comments
WP 情報専門フィード の 「WPer」 に収録してあるフィードの一覧を表示しようと思い立ち、WordPress の「ブログロール(リンク)機能」を試してみることにした。まとめフィードは Google リーダーを利用しているので、登録フィードの一覧から Add Link 画面へ一つずつコピペして登録。
…Σ(゜д゜lll)
インポート機能があったじゃん!
そう、WordPress のブログロール機能は、OPML 形式のファイルからデータを取り込むことができるのでした。。1
ということで、以下は、Google リーダーから WordPress の Blogroll へインポートし、サイトに表示させるまでのメモ。インポート後に WP の編集画面上でちまちま修正することにないように、できるだけ OPML ファイル上でデータを整えた上でのインポートを目論む。
使用バージョン: WordPress 2.3.1
目次:
1件テスト
まずは 1件テスト。Google リーダーから登録フィードをエクスポートし、テスト用に1件に絞ってから、WP へインポートしてみた。
Google リーダーからエクスポートしたデータそのままだと、どう登録されるか?OPML のフォーマットが全く分かっていないので、それを知るのも兼ねて。
1. Google リーダ > 設定 > インポート/エクスポート 画面
登録フィードのエクスポート OPML ファイル形式で登録フィードをエクスポートするをクリックして、ファイルとして保存。
タグなどでの絞込みはできず、全件出力される。
2. OPML ファイルをテキストエディタで開く
テキストエディタで開く(自動的に UTF-8/LF)と、次のようなフォーマットになっている。
OPML の構成:
<opml version="1.0"><head>~</head><body>outlineタグAoutline登録フィードoutline登録フィードoutline…
outlineタグBoutline登録フィードoutline登録フィードoutline…
outline登録フィード (未タグ付け)outline登録フィード (未タグ付け)outline…
</body>
</opml>
コード:
<opml version="1.0">
<head>
<title>ぼの の Google リーダー登録フィード</title>
</head>
<body>
<outline title="タグ名" text="タグ名">
<outline text="登録フィード名" title="登録フィード名" type="rss"
xmlUrl="フィード URL" htmlUrl="サイト URL"/>
<outline text="登録フィード名" title="登録フィード名" type="rss"
xmlUrl="フィード URL" htmlUrl="サイト URL"/>
</outline>
<outline text="登録フィード名"
title="登録フィード名" type="rss"
xmlUrl="フィード URL" htmlUrl="http://codex.wordpress.org/Special:Recentchanges"/>
<outline text="insomniaque" title="insomniaque" type="rss"
xmlUrl="http://bleu.raindrop.jp/feed/" htmlUrl="http://bleu.raindrop.jp"/>
<outline text="ja.wordpress.org 日本 ATOM"
title="ja.wordpress.org 日本 ATOM" type="rss"
xmlUrl="http://ja.wordpress.org/feed/atom/" htmlUrl="http://ja.wordpress.org/"/>
</body>
</opml>
- タグ名: 付けているタグ名。大文字混在もそのまま。
- 登録フィード名: そのまま。自分で名前を書き換えていればそれで。
- フィード URL: そのまま
- サイトURL:
- だいたいサイトのトップになるが、最後の
/(スラッシュ)が欠けることがほとんど。 - WP サイトがサブディレクトリになっている場合も OK。
- 必ずトップという訳ではなく、こんなのもある。判定ロジックは謎。。
http://codex.wordpress.org/Special:Recentchanges - URL 中の & は、文字実体参照になっている
- だいたいサイトのトップになるが、最後の
type="rss"— ATOM でもこれ。
3. 1件に絞って別名で保存
<opml version="1.0">
<head>
<title>ぼの の Google リーダー登録フィード</title>
</head>
<body>
<outline title="wper" text="wper">
<outline text="Embrion.tv » WordPress"
title="Embrion.tv » WordPress" type="rss"
xmlUrl="http://embrion.tv/category/wordpress/feed/" htmlUrl="http://embrion.tv"/>
</outline>
</body>
</opml>
<outline title="wper" text="wper"> </outline> は試しに残してみる。
次がたまたま Embrion.tv さんだったので、事例として挙がってしまいました。すみません~。(^-^;) >いつきさん
4. WordPress へインポート
カテゴリは WPer を選択(1つしかないけど。。)
Importing...Inserted wper Inserted Embrion.tv » WordPress
Inserted 2 links into category 52. All done! Go manage those links.
2件って出た!でも、登録されたデータは 1件だった。↓
5. 登録されたデータを確認
- Name: Embrion.tv » WordPress
- Address: http://embrion.tv
- RSS Address: http://embrion.tv/category/wordpress/feed/
- Categories: WPer
- その他の項目はデフォルト値
「wper」の方は、リンクとして登録されたわけでもなく、カテゴリが増えちゃったわけでもないので、見なかったことにする。。
検討
- Address 欄
- 手作業で登録していたときは、登録フィードの元に当たる WP カテゴリ/タグページの URL を入れていた。そのように直すか、今までの含めてサイトトップの URL に変更するか?
→ 手作業どおりにする。 - Description 欄
- ここに WPer のお名前を入れていた。 何かの属性でインポートしてくれるか、WP のソースを調べる。
wp-admin/link-import.php に読み込まれている link-parse-opml.php に次のコードあり。
// columns we wish to find are: link_url, link_name, link_target, link_description
// we need to map XML attribute names to our columns
$opml_map = array('URL' => 'link_url',
'HTMLURL' => 'link_url',
'TEXT' => 'link_name',
'TITLE' => 'link_name',
'TARGET' => 'link_target',
'DESCRIPTION' => 'link_description',
'XMLURL' => 'link_rss'
);
先の OPML ファイルとも見比べてみると、左辺の属性名が OPML にあれば、右辺のカラム(フィールド)に入れてくれそう。属性名の大文字小文字は関係ないようだ。
ということで、OPML ファイルに description="お名前" というように属性を追加してみた。
htmlUrl もカテゴリページの URL に修正しておいてみる。
<opml version="1.0">
<head>
<title>ぼの の Google リーダー登録フィード</title>
</head>
<body>
<outline title="wper" text="wper">
<outline text="Eriane ver 0.6.1" title="Eriane ver 0.6.1"
type="rss" description="かみらさん"
xmlUrl="http://nakoruru.jp/index.php?cat=4&feed=rss" htmlUrl="http://nakoruru.jp/index.php?cat=4"/>
</body>
</opml>
- Name: Eriane ver 0.6.1
- Address: http://nakoruru.jp/index.php?cat=4
- Description: かみらさん
- RSS Address: http://nakoruru.jp/index.php?cat=4&feed=rss
- Categories: WPer
- その他の項目はデフォルト値
希望通りにインポートされた。ヽ(・∀・)人(・∀・)ノ
& も & に直って登録され、問題なし。
次がたまたま Eriane さんだったので、事例として挙がってしまいました。すみません~。(^-^;) >かみらさん
本番インポート
次以降のデータのフォーマットを次の形に整えて、インポート。
<opml version="1.0">
<head>
<title>ぼの の Google リーダー登録フィード</title>
</head>
<body>
<outline title="wper" text="wper">
<outline text="サイト名"
type="rss" description="お名前"
xmlUrl="フィード URL" htmlUrl="カテゴリ・タグページ URL"/>
<outline 次... />
</outline>
</body>
</opml>
text属性とtitle属性は、どちらもlink_name(Name 欄)になるので、片方だけあればいい(テスト済み)。- カテゴリは、別途インポート画面で指定するので、
<outline title="wper" text="wper"></outline>はなくていいはずだが、メモとして残しておく。(本当は外したほうが無難)
→ 一応でけた。ヽ(・∀・)人(・∀・)ノ
記事への表示
ブログロールをサイト上に表示するには、リンク管理タグ唯一の生き残り wp_list_bookmarks() を使う。デフォルトではサイドバー向けフォーマットで出力されるので、「まとめフィード」の記事内に表示するために、次のようなコードとした。runPHP も使用。
<ul class="linklist">
<?php wp_list_bookmarks('category=52&categorize=0&title_li=&show_description=1&between= - '); ?>
</ul>
完成: WP: WordPress 情報専門フィード - WPer 収録フィード一覧
関連リンク
- ps*wiki » wp_list_bookmarks() — 一部間違いが発覚。。後で直す。
- jigelog » favicon API javascriptライブラリ [jQueryプラグイン] — favicon 表示にはこちらを利用。jigen さん、ありがとう。jQueryプラグイン版、とっても便利ですー。
- WordPress Codex » Import Links SubPanel — ドキュメントの存在を忘れてた。。後で読む。
- インポート機能はあるのにエクスポート機能がないのが気になって、今まで使用を避けていたのだった。忘れてた。orz[back]


