「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
Movable Type 4.2以降でRSS 2.0のフィードを配信する
Movable Type 4.2以降では、RSS 2.0のテンプレートが廃止されています。
ただ、場合によっては、RSS 2.0のフィードも配信したいことがあります。
その方法を紹介します。
1.RSS 2.0のテンプレートの作成
まず、RSS 2.0のテンプレートを作ります。
インデックステンプレートを新規作成し、テンプレート名を「RSS 2.0」、出力ファイル名を「index.xml」として、テンプレートの内容の欄に以下のソースを貼り付けます。
<$MTHTTPContentType type="application/rss+xml"$><?xml version="1.0" encoding="<$MTPublishCharset$>"?> <rss version="2.0"> <channel> <title><$MTBlogName remove_html="1" encode_xml="1"$></title> <link><$MTBlogURL$></link> <description><$MTBlogDescription remove_html="1" encode_xml="1"$></description> <language><$MTBlogLanguage ietf="1"$></language> <copyright>Copyright <$MTDate format="%Y"$></copyright> <lastBuildDate><MTEntries lastn="1"><$MTEntryDate format_name="rfc822"$></MTEntries></lastBuildDate> <generator>http://www.sixapart.com/movabletype/</generator> <docs>http://www.rssboard.org/rss-specification</docs> <MTEntries lastn="15"> <item> <title><$MTEntryTitle remove_html="1" encode_xml="1"$></title> <description><$MTEntryBody encode_xml="1"$></description> <link><$MTEntryPermalink encode_xml="1"$></link> <guid><$MTEntryPermalink encode_xml="1"$></guid> <MTEntryCategories> <category domain="http://www.sixapart.com/ns/types#category"><$MTCategoryLabel remove_html="1" encode_xml="1"$></category> </MTEntryCategories> <MTEntryIfTagged><MTEntryTags> <category domain="http://www.sixapart.com/ns/types#tag"><$MTTagName remove_html="1" encode_xml="1"$></category> </MTEntryTags></MTEntryIfTagged> <pubDate><$MTEntryDate format_name="rfc822"$></pubDate> </item> </MTEntries> </channel> </rss>
2.RSS 2.0へのリンクを出力する
次に、サイドバー等にRSS 2.0へのリンクを出力するようにして、ブログの読者がRSS 2.0のフィードをRSSリーダーに登録しやすくなるようにします。
リンクを出力したい位置に、以下のようなタグを入れます。
<a href="<$mt:BlogURL$>index.xml">RSS 2.0</a>
例えば、Movable Type 4.25の標準テンプレートセットだと、「購読」というウィジェットに、以下のようにAtomのフィードのリンクを出力する部分があります。
<li><img src="<$mt:StaticWebPath$>images/status_icons/feed.gif" alt="購読する" width="9" height="9" /> <a href="<$mt:Link template="feed_recent"$>">このブログを購読</a></li>
この部分を以下のように書き換えれば、AtomとRSS 2.0の両方のリンクを出力することができます。
<li><img src="<$mt:StaticWebPath$>images/status_icons/feed.gif" alt="購読する(Atom)" width="9" height="9" /> <a href="<$mt:Link template="feed_recent"$>">このブログを購読(Atom)</a></li> <li><img src="<$mt:StaticWebPath$>images/status_icons/feed.gif" alt="購読する(RSS 2.0)" width="9" height="9" /> <a href="<$mt:BlogURL$>index.xml">このブログを購読(RSS 2.0)</a></li>
3.RSS 2.0のフィードを検知できるようにする
最近のWebブラウザでは、WebページのHTMLからフィードの情報を検知して、アドレスバーにフィードのアイコンを表示する機能があります。
この機能に対応させて、RSS 2.0のフィードを検知できるようにするには、HTMLのヘッダーを
出力する部分に以下のタグを出力します。
<link rel="alternate" type="application/rss+xml" title="RSS" href="<$mt:BlogURL$>index.xml" />
例えば、Movable Type 4.25の標準テンプレートセットだと、「HTMLヘッダー」というテンプレートモジュールに、以下のようにAtomのフィードの情報を出力する部分があります。
<link rel="alternate" type="application/atom+xml" title="Recent Entries" href="<$mt:Link template="feed_recent"$>" />
この部分を以下のように書き換えることで、AtomとRSS 2.0の両方のフィードを、Webブラウザに検知させることができます。
<link rel="alternate" type="application/atom+xml" title="Recent Entries(Atom)" href="<$mt:Link template="feed_recent"$>" /> <link rel="alternate" type="application/rss+xml" title="Recent Entries(RSS 2.0)" href="<$mt:BlogURL$>index.xml" />
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください
ナナ
はじめまして、いつも見ています^^
先日、私もMTでブログ作りを始めました。
ランキングに参加しているのですが、ping送信がうまく出来ていないようで、最新記事が反映していません。
そこでAtomではなく、こちらの記事を参考にさせてもらいながら
RSS2.0を追加してみましたが、
これも反映してくれなくて・・・汗
RSS1.0の追加方法はありますか?
壱
>ナナさん
こんにちは。
Ping送信は、AtomやRSSの情報を送信するものではないので、問題は別のところにあるのではないかと思います。
ナナ
お返事ありがとうございます♪
そうなのですか・・
何を修正していいのかさっぱり分からなくて・・(´・ω・`)
もう少し考えてみます。
RSS1.0も検索して調べてみたのですが、どのやり方もエラーになってしまって(=艸=。)
むずかしいです。
ティム
こちらのサイトは大変重宝しています。
今回も、RSS2.0の設定で参考にさせていただきました。
説明どおりに作業を行いましたが、サイドバーの「このブログを購読(RSS 2.0)」をクリックすると「URLがみつかりません」となってしまいます。
MTをインストールする際に、通常 ~.com/mt/とするところを~.com/blogとしたのが影響しているのでしょうか。
お教えください。
壱からティムへの返信
>ティムさん
こんにちは。
もう一度、記事内の作業手順をよく確認してみてください。
それでも「URLが見つかりません」と表示されるとなると、申し訳ありませんが原因不明です。
ティムからティムへの返信
「index.xml」を何度か作成しなおしたところ、無事成功しました。
ありがとうございました。
mayona
いつも参考にさせていただいています。
こちらの右ナビ内の「購読」内にある2つのフィードですが、クリックするとエラー表示(パースエラー)になりました。
しばらく前から読み込みができなくなっていたようなので、
直に叩いて試したのですが、受け取り側の不具合でしょうか。