WordPressでFlash連携させるためにXMLを別に作成するプラグイン
WordPressとFlashを連携させる場合、単純にテンプレートでxmlを吐き出せばいいのだが、
欲張ってhtmlの通常ページも残したいって欲張りなサイト制作に直面しました。
そこでアレコレ探したところ、
「Feed Wrangler」というプラグインが素晴らしい!
これは何をしてくれるプラグインかというと
・好きなxml構文でWPの記事を吐き出せる
・テンプレートをいじる感覚でカスタム出来る
という素晴らしいプラグインでした。
具体的には
1、Feed Wranglerからファイルをダウンロード
2、プラグインフォルダにFTPアップロード
3、WPのプラグイン画面でFeed Wranglerを有効化
4、設定画面にFeed Wranglerの項目が現れる。
5、下記画面の
Feed Slug:に任意の名前(ex..my_feed)
Notes:に備考(ex..カスタム用のフィード)

6、その後「add feed」ボタンで登録完了!
7、するとCurrent Feedsに下図のようなリストが現れるので、

create feed-my_feed.php in your theme to override
↑現在使用中の「Theme」フォルダにfeed-my_feed.phpって名前でテンプレートを作成すれば完成!
XMLテンプレート例
<?php
/*
Template Name: newsXML
*/
?>
<?php header('Content-Type: text/xml; charset='.get_option('blog_charset'), true); ?>
<?php echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
<items>
<?php query_posts('category_name=カテゴリー名&showposts=表示数'); ?>
<?php if(have_posts()): while(have_posts()): the_post(); ?>
<item_list>
<?php echo "<TITLE>".$post->post_title."</TITLE>\n";
echo "<URL>".get_permalink($post->ID)."</URL>\n";
echo "<DATE>".$post->post_date."</DATE>\n";
echo "<CONT>".strip_tags($post->post_content)."</CONT>\n";
?>
</item_list>
<?php endwhile; endif; ?>
</items>フィードを確認するにはCurrent Feedsのリストのスラッグ名のリンクをクリックすれば表示されます。
Comments
Powered by Facebook Comments
この記事を読んだ方は下記も投稿も読んでいます
- Facebookの友達リストを非表示にする方法
- Facebookの友達リストを非表示にする方法(タイムライン編)
- 文字コードをWEB上で変換してくれるサイト[文字コード変換WEB「mozicode」]
- jQueryでURLパラメータを扱う(get引数を使いたい)
- jQueryでタイマー処理(X秒後にフェードイン等)
コメント・トラックバック
コメントする



はじめまして。非常に参考になるエントリーありがとうございます。
早速、参考にさせていただきFeed Wranglerをいれてみました。
これは便利ですね!!
問題なくXMLで出力できるようになっているのですが、
これをRSSリーダー(LivedoorReader)に登録しようとすると、
RSSフィードとして認識してもらえないようですが、
そちらの環境ではいかがですか?
Flashが読む文にはXMLとしては大丈夫そうですが、
ひょっとしてフィードとしては不十分な出力なのでしょうか。
念のためFeedAnalyzer(http://feedanalyzer.com/)に
フィードのURL
:[http://****/?feed=my-feed]
を突っ込むと、
以下のようなエラーが出ます。
「構文を確認しましたが妥当(VALID)ではありません。」
このフィードはphpファイルのほうを正しく記述したらRSSリーダーのほうで認識されるようになるのか、非常に悩んでおります。
もしご存知でしたらアドバイスお願いいたします。。
コメント by kenbou
2009年7月17日 @ 2:22 AM
コメントありがとうございます。
なるほど!
Feed Wranglerの設定画面で新規に登録すると
Template being usedの欄に
Default (create xxx.php in your theme to override)
と表示されるはずです。
デフォルトの設定だとRSS2.0のフィードが
生成されるはずですよね??
こちらで確認しましたが、
恐らくrss2.0にてxml生成がされているみたいです。
試しにFeedAnalyzerで
http://kidokorock.com/?feed=test
でかけてみたのですが、正常にバリデートされました。
もし、お時間的に可能でしたら、上記URL
FeedAnalyzerでお試しいただけると
問題解決につながるかもしれません。
ちなみにFeed Wranglerはバージョン0.3.1を使用しています。
コメント by admin
2009年7月17日 @ 6:56 PM
返信ありがとうございます。
・・・結果からいいますと、だめでした。
たしかに管理人様のだと、FeedAnalyzerは問題なくいけますよね。
こちらのほうですが、
phpの書式を、当記事のXMLテンプレート例をそのまま貼り付けて見ました。
※昨日は別のオリジナルのXMLテンプレートのphpを使っていましたので・・
一点確認させてください。PHPファイルはこの記事のXMLテンプレート例をお使いでしょうか。
また、吐き出されているFeedのXML自体(http://kidokorock.com/?feed=test)をIE6という旧ブラウザを使って
見てみたのですが、
-
-
というタグが冒頭にありました。これはphpのほうで記述されているのでしょうか???となると、サンプルのphpとは異なるのかなと思いましたが、これはFeelWranglerが自動で出しているのでしょうか。。。??
コメント by kenbou
2009年7月18日 @ 2:07 AM
すみません、タグを貼ってみたのですが、反映されないみたいですので、書きますと、
rss version=”2.0″
なるタグがあったということでした。
コメント by kenbou
2009年7月18日 @ 2:08 AM
私の方は、defaultの設定のままで、
FeelWranglerが自動で出している状態です、
試しに、PHPのバージョン等をご確認されてみてはいかがでしょうか?
ご参考になれば、有り難いのですが。
コメント by admin
2009年7月18日 @ 6:56 PM
[...] 実際動かそうと思って参考にしたサイト。 [...]
ピンバック by Feed Wrangler関連。 | WPNOB
2011年3月3日 @ 4:39 PM